Kiedyś pisałem taki program i był bardzo prosty.
Był on oparty na micie o Ariadnie i jej nici.
Miałem 2 struktury pomocnicze:
-tablicę wielkości labiryntu-pamietam w niej, czy dane pole już odwiedziłem. Na poczatku miejsca zajęte przez ściany zaznaczam jako odwiedzone.
-listę-nić-jej koniec jest zawsze w polu startowym, kiedy przesuwamy się o jedno pole, to wrzucamy to pole na początek listy(rozwijamy nić)
Wchodzimy tylko na pola na których jeszcze nie byliśmy. Nie ma znaczenia, czy będziemy chodzić w lewo czy prawo - jak bardzo chcemy, to przed każdym ruchem moglibyśmy losować kierunek.
Jezeli jesteśmy na polu, którego wszyscy sąsiedzi są zajęci, to "zwijamy" trochę nić i cofamy się o jedno pole.
Jeżeli jesteśmy na polu startowym i wszyscy sąsiedzi są odwiedzeni, to znaczy, że nie ma wyjścia.
P.S.
Jezeli ktoś nie zauważył, to ta lista działa jak stos
Można to też zrobić bez tablicy, ale działa dużo wolniej. W tym rozwiązaniu każde pole odwiedzimy co najwyżej raz(licząc cofanie się to dwa razy)