используя 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()
У меня такое ощущение, что это может сработать таким образом , но здесь я потерял логику и мне нужен более свежий взгляд.
Вопрос в том, где я допустил ошибку? Есть ли способ не менять мой код, а только добавить несколько строк, чтобы остановить цикл?
Я пробовал продолжить и прервать - здесь не работает.
Спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/655 ... -challenge
Мобильная версия