🤖 Как робот-пылесос находит дорогу? Разбираем Flood Fill / BFS
Представь: робот стоит в углу лабиринта и не видит ничего дальше соседней клетки. Как ему добраться до цели кратчайшим путём?
Ответ — алгоритм Flood Fill на основе BFS. Работает как вода, разлитая на пол: волна расходится от старта во все стороны, пока не накроет цель 🌊
Вся магия — в трёх структурах:
• queue — очередь клеток на осмотр. Берём клетку из начала, соседей кладём в конец. Именно очередь (FIFO), а не стек, даёт поиск в ширину — сначала осматриваем ВСЕХ соседей на расстоянии 1, потом всех на расстоянии 2, и так далее
• visited — множество посещённых клеток. Без него алгоритм будет ходить кругами вечно
• parent — из какой клетки мы пришли в каждую. Это «хлебные крошки» для обратного пути
Где это живёт в реальном мире:
✅ роботы-пылесосы и складские роботы
✅ заливка в Paint (та самая «ведёрко»)
✅ поиск пути в играх
✅ подсчёт островов на карте
Полный код с комментариями и генерацией анимации — в файле ниже 👇
#алгоритмы #python #robotics
Post #75
355
- ❤ 27
- 🔥 25
- 🤝 20
- 🥰 3