Похоже, лабиринт создан как текстовый блок. * используется для обозначения стены или за ее пределами. Буква «Е» используется для обозначения выхода из лабиринта. Вероятно, это выглядело так:
********************E**
*......*......*......**
*.********.*******.****
*.....*......*........*
*.*************.*****.*
*..*............*****.*
***********************
Из строки y <1 y> 8 размеры должны быть 8 высотой, но вы поняли идею. Когда в позиции находится буква «Е», то выход найден, и лабиринт решен. «A» и «H» используются для обозначения некоторой ширины. Я не совсем понимаю, но это та же идея.
Рекурсия работает следующим образом. Возьми мою отправную точку, скажем, х = 7, у = 6. Если это выход, то мы успешны. Если это на стене, мы потерпели неудачу. если это выходит за границы, мы потерпели неудачу, теперь проверьте все четыре местоположения вокруг меня и сделайте то же самое. Если какое-либо из этих четырех мест нашло выход, значит, мы успешны.
Если лабиринт разрешим, тогда мы получим 'true', если ветвь разрешима, тогда мы получим true. Если лабиринт не может быть разрешен с заданной начальной позиции, возвращается false, а если ветвь не приводит к выходу, возвращается false.