Некоторые алгоритмы обхода препятствий на двухмерной сетке:
- «Вверх и вправо змейкой». dzen.ru Обход идёт по столбцам, отсчёт ведётся с левой нижней ячейки, при переходе на следующий столбец меняется направление. dzen.ru
- «Вправо-вверх диагональю». dzen.ru Обход по диагоналям вправо и вверх, отсчёт начинается с левой верхней ячейки. dzen.ru
- «Влево-вниз диагональю». dzen.ru Обход по диагоналям влево и вниз, отсчёт начинается с левой верхней ячейки. dzen.ru
- «Влево-вверх диагональю». dzen.ru Обход по диагоналям влево и вверх, отсчёт начинается с левой нижней ячейки. dzen.ru
- «Вправо-вниз диагональю». dzen.ru Обход по диагоналям вправо и вниз, отсчёт начинается с левой нижней ячейки. dzen.ru
- «Вправо-вверх диагональной змейкой». dzen.ru Обход по диагоналям: сначала вправо и вверх, затем направление меняется на противоположное при переходе к следующей диагонали, отсчёт начинается с левой верхней ячейки. dzen.ru
- «Спиралью по часовой, начиная с левой верхней». dzen.ru Обход по спирали, которая закручивается по часовой стрелке, отсчёт идёт с левой верхней ячейки. dzen.ru
- «Спиралью против часовой, начиная с левой верхней». dzen.ru Обход по спирали, которая закручивается против часовой стрелки, отсчёт идёт с левой верхней ячейки. dzen.ru
Также для поиска пути на сетке с препятствиями используют волновой алгоритм, который начинается с начальной позиции и постепенно распространяется на соседние клетки. forum.hpc.name