Comme vous l'avez sûrement compris, nous avons mal réfléchi avant de demander à Reeborg d'avancer dès qu'il a posé une sonnette. Nous devons vérifier d'abord s'il y a un mur qui l'empêche d'avancer. Voici une solution au problème.
def turn_right():
repeat(turn_left, 3)
put_beeper()
# début des changements
if not front_is_clear():
turn_left()
# fin des changements
move()
while not on_beeper():
if right_is_clear():
turn_right()
move()
elif front_is_clear():
move()
else:
turn_left()
turn_off()
Essayez le maintenant et voyez comme il fonctionne. Pouvez-vous imaginer des situations où il pourrait ne pas marcher ?