Цикл 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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