Несколько алгоритмов обхода лабиринта без карты:
- Правило «правой руки». www.ixbt.com Нужно приложить одну руку к стене лабиринта, когда в него входите, и не отрывать её. www.ixbt.com Таким образом обходят все стены лабиринта по периметру, не отрываясь от них. www.ixbt.com Если выход находится на одной из этих стен, то его обязательно найдут. www.ixbt.com Если же выход находится внутри лабиринта, то он должен быть окружён какой-то другой стеной. www.ixbt.com Тогда тоже обходят эту стену по периметру и добираются до выхода. www.ixbt.com
- Алгоритм Люка-Тремо. myrobot.ru Выйдя из любой точки лабиринта, делают отметку на его стене (крест) и двигаются в произвольном направлении до тупика или перекрёстка. myrobot.ru В первом случае возвращаются назад, ставят второй крест и идут в направлении, не пройденном ни разу, или пройденном один раз. myrobot.ru Во втором — идут по произвольному направлению, отмечая каждый перекрёсток на входе и на выходе одним крестом. myrobot.ru Если на перекрёстке один крест уже имеется, то следует идти новым путём, если нет — то пройденным путём, отметив его вторым крестом. myrobot.ru
Если лабиринт состоит из нескольких отдельных частей (например, двух кругов), то эти методы могут не сработать. www.ixbt.com В этом случае нужно проверять разные части лабиринта, пока не найдут ту, где есть выход. www.ixbt.com