У меня есть приложение, которое выиграет от использования A *; однако по причинам, связанным с наследством, мне нужно, чтобы он продолжал генерировать точно те же пути, что и раньше, когда есть несколько наилучших путей для выбора.
Например, рассмотрите этот лабиринт
...X FX.S .... S = start F = finish X = wall . = empty space
с приоритетами направления Вверх; Правильно; Вниз; Left. Используя ширину, мы найдем путь DLLLU; однако, используя A *, мы немедленно уходим влево и заканчиваем поиск пути LULLD.
Я пробовал следить за тем, чтобы всегда расширяться в правильном направлении при разрыве связей; и переписывая указатели PreviousNode
при переходе с более важного направления, но не работает в этом примере. Есть ли способ сделать это?