Цикл while Python и World Challenge от ReeborgPython

Программы на Python
Anonymous
Цикл while Python и World Challenge от Reeborg

Сообщение Anonymous »

Я пытаюсь решить препятствие 4 для задачи https://reeborg.ca/reeborg.html -
используя Python, в основном циклы while.
Хотя приведенный ниже код идеально подходит для этой задачи:

Код: Выделить всё

def turn_right():
turn_left()
turn_left()
turn_left()

def pass_the_wall():
turn_left()
while wall_on_right():
move()
turn_right()
move()
turn_right()
while front_is_clear():
move()
turn_left()

while not at_goal():
if wall_in_front():
pass_the_wall()
else:
move()
Я написал что-то вроде этого:

Код: Выделить всё

def turn_right():
turn_left()
turn_left()
turn_left()

def pass_the_wall():
if front_is_clear():
move()
if wall_in_front():
turn_left()
while wall_on_right():
move()
while right_is_clear():
turn_right()
move()
turn_right()
move()
while wall_in_front():
turn_left()

while not at_goal():
if wall_in_front():
pass_the_wall()
else:
move()
Он может следовать по пути, но Reeborg не останавливается, поскольку цикл бесконечен.
У меня такое ощущение, что это может сработать таким образом , но здесь я потерял логику и мне нужен более свежий взгляд.
Вопрос в том, где я допустил ошибку? Есть ли способ не менять мой код, а только добавить несколько строк, чтобы остановить цикл?
Я пробовал продолжить и прервать - здесь не работает.
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/655 ... -challenge

Вернуться в «Python»