Есть ли способ сохранить приоритеты направления в A *? (т.е. Создание того же пути, что и ширина -сначала)

У меня есть приложение, которое выиграет от использования A *; однако по устаревшим причинам мне нужно чтобы он продолжал генерировать точно те же пути, что и раньше, когда есть несколько лучших -путей на выбор.

Например, рассмотрим этот лабиринт

...X
FX.S
....

S = start
F = finish
X = wall
. = empty space

с направлением -приоритетами Вверх; Верно; Вниз; Слева . Сначала используя ширину -, мы найдем путь DLLLU; однако, используя A *, мы немедленно идем налево и в конечном итоге находим путь LULLD.

Я пытался следить за тем, чтобы всегда расширяться в правильном направлении при разрыве связей; и перезапись указателей PreviousNodeпри переходе с более важного направления, но в этом примере ни то, ни другое не работает. Есть ли способ сделать это?

10
задан BlueRaja - Danny Pflughoeft 17 July 2012 в 18:20
поделиться