Как решить этот лабиринт?
Ответы (2 шт):
Автор решения: pieceofAir
→ Ссылка
Не очень понятно, где находится исходная позиция стрелки(не указано), но если это она и есть, то вот возможный вариант решения.
Repeat Until
Move forward
turn_right
if isPathForward:
move_forward
else:
if isPathLeft:
turn_left
else:
turn_right
Автор решения: Stanislav Volodarskiy
→ Ссылка
Правило левой руки.
Встаньте так чтобы ваша левая рука касалась стены.
Повторяйте в цикле.
Если левая рука не касается стены,
повернитесь налево, сделайте шаг.
Если левая рука касается стены и впереди свободно,
сделайте шаг.
Если левая рука касается стены и впереди стена,
повернитесь направо.
Нетрудно убедится что при таком движении ваша левая рука или касается стены в конце цикла или коснётся её на следующем цикле. Посмотрите на лабиринт и убедитесь что касаясь стены вы доберётесь до звезды.
repeat until *
isPathLeft
turn left
move forward
else
isPathForward
move forward
else
turn right
