Базовый случай здесь:
if maze[x][y]=='E' then return true
- если вы достигли конечной точки, вам удалось решить лабиринт, следовательно, лабиринт разрешим, и вы возвращаетесь true
, чтобы сказать это. [1111 ]
Теперь, если вы достигли некоторой точки, которая еще не является конечной точкой, и рекурсивно исследовали остальную часть лабиринта (это то, что произошло в инструкции if
), и вы получили true
из рекурсивный вызов, затем этот рекурсивный вызов достиг конечной точки. Следовательно, лабиринт разрешим - возвращаемся true
.
ПРИМЕЧАНИЕ
Представленный код является неверным : он не может правильно обрабатывать неразрешимый лабиринт.
Если лабиринт не разрешим, либо из-за отсутствия позиции 'E'
:
******
*....*
******
, либо из-за отсутствия подходящего пути:
**********
*........*
*.********
*......*E*
**********
код будет повторяться 'навсегда' до тех пор, пока стек не переполнится, а затем не завершится.
Настройки пользовательского объема используются для хранения значений, характерных для каждого отдельного пользователя, тогда как настройки области действия приложения используются для всех пользователей.
Смотрите на эту статью.
Пользователь Ограниченные по объему Настройки будут только влиять на текущего пользователя и относительно безопасны установить. Они хранятся в пользователе определенное местоположение, таким образом, нет никакой реальной проблемы с записью в них.
Приложение Ограниченные по объему Настройки, с другой стороны, только для чтения и не могут быть изменены