У меня возникли проблемы с адаптацией алгоритма A* для обработки меняющихся сред. В качестве минимального примера рассмотрим эту мошенническую карту:
######
#! #
### #
#S #
##+###
##F###
######
Цель состоит в том, чтобы добраться из S
в F
, но для этого игрок должен наступить на !
, чтобы открыть дверь. Проблема, с которой я сталкиваюсь, заключается в том, что в A * после посещения точки сетки она становится «закрытой» и не может быть повторно введена. Как я могу изменить алгоритм, чтобы решить эту головоломку?
!
открывает дверь+
? Потому что, если есть несколько переключателей без указания, какую дверь они открывают, предположение A* о полной информации не работает, и алгоритм не может решить проблему. (Кроме того, vanilla A* довольно плохо справляется с лабиринтами.) - person Fred Foo   schedule 14.07.2012