У меня проблемы с алгоритмом решения лабиринта. Я пытаюсь реализовать правило левой руки.
public Direction move(View v) {
if (!wallExistsToLeft(v)) {
turnLeft();
} else if (v.mayMove(direction)) {
return direction;
} else if (!wallExistsToRight(v)){
turnRight();
} else {
turnAround();
}
return direction;
}
Направление всегда устанавливается равным текущему направлению, в котором находится решатель лабиринта.
TurnX меняет направление в зависимости от направления, в котором вы сейчас находитесь
Функция перемещения возвращает направление, в котором решатель лабиринта перемещается на 1 позицию в этом направлении.
Может кто-то указать мне верное направление? Я уверен, что есть какой-то простой рекурсивный способ, которым это можно реализовать, но я не могу его решить.
В настоящее время я терплю неудачу в этих двух тестах:
Любая помощь будет принята с благодарностью.