У меня проблемы с алгоритмом решения лабиринтов.Я пытаюсь реализовать правило левой руки.
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 пробел в этом направлении.
Может ли кто-нибудь указать мне правильное направление?Я уверен, что есть какой-то простой рекурсивный способ, которым это может быть реализовано, но я не могу решить это.
В настоящее время я проваливаю эти два теста:
Любая помощь будет принята с благодарностью.