поиск пути в простой сетке, никаких препятствий - PullRequest
1 голос
/ 20 июня 2011

Мне нужен простой алгоритм в As3, который находит кратчайший путь в простой сетке, мне нужен полный путь, а не только обе точки или длина.

проверьте изображение здесь: http://screencast.com/t/GmR5YaO4L

так что мне нужны все квадратные числа сетки, которая идет по пути от А до Б.

1 Ответ

3 голосов
/ 20 июня 2011

Хотя A * является своего рода излишним, когда нет препятствий, вы можете также использовать его, поскольку я написал для него библиотеку в AS3: http://www.newarteest.com/flash/astar.html


РЕДАКТИРОВАТЬ: Если вы уверены, что при поиске пути на 100% никогда не будет препятствий, я все равно рекомендую A *, потому что это дает вам большую гибкость, но в вашем конкретном случае довольно легко найти путь без препятствий, потому что двигаться только один раз по горизонтали, затем по вертикали (или наоборот), а не по диагонали.

Сначала вычтите компоненты x и y из позиций, чтобы определить, какой путь длиннее, и начните двигаться в этом направлении. Затем, когда объекты окажутся в той же позиции на этой оси, переключитесь на перемещение в другом направлении.

В зависимости от ваших потребностей, вы можете легко создать цикл или рекурсивную функцию, которая находит весь путь до того, как вы пройдете его, но может быть проще переместить объект в правильном направлении, не зная заранее весь путь. При поиске пути вы все равно должны пройти через все узлы, чтобы избежать повторного прохождения узлов дважды.

...