Si, si, si...
Attendez une minute ! Reeborg peut prendre des décisions tout seul. Je ne vous l'ai pas dit ?
Eh bien, pour dire la vérité, Reeborg a besoin d'aide pour décider : vous devez lui donner les choix qu'il doit décider de prendre. Par exemple, quand Reeborg rencontre une sonnette, vous pouvez lui donner certains choix à faire : vous pouvez lui demander de la ramasser comme ceci :
if on_beeper():
pick_beeper()
[NdT : if en anglais = si]
Voyons ce que veut dire le code ci-dessus :
L'explication peut avoir l'air compliquée quand vous la lisez mais il est en fait plutôt simple d'utiliser une instruction if. Voyons cela dans un exemple simple. Supposons que nous voulions faire faire à Reeborg 9 pas, en ramassant toutes les sonnettes qui sont sur son chemin (Nous supposons qu'il ne peut y avoir au plus qu'une seule sonnette à chaque point). Par exemple, la position de départ peut ressembler à ceci :
et nous voulons que la position finale soit :
Nous voulons donc demander à Reeborg de :
en répétant les étapes ci-dessus 9 fois. Rappelez-vous que si nous demandons à Reeborg de ramasser une sonnette quand il n'y en a pas, il se plaindra et s'éteindra. Voici comment nous pouvons faire cela :
def avancer_et_ramasser():
move()
if on_beeper():
pick_beeper()
repeat(avancer_et_ramasser, 9)
turn_off()
Essayez-le !
C'est le temps de la récolte, encore une fois ! Mais cette fois les graines n'ont pas toutes germé et certaines carottes manquent. Faites que Reeborg cueille toutes les carottes (représentées par des sonnettes) dans ce jardin. Le fichier monde est harvest3.wld. Revoyez le deuxième exercice de récolte précédent que vous avez fait. Il y a des chances que tout ce que vous ayez à faire est de changer l'instruction recolter_une_rangee() pour qu'elle ressemble à l'instruction avancer_et_ramasser() ci-dessus. Mais il est possible que vous ayez besoin d'un changement de plus [Par exemple, dans ma solution au problème de récolte, j'ai défini une instruction ramasser_et_avancer() qui avait besoin d'un changement mineur aussi].
Remarquez que votre nouveau programme devrait aussi fonctionner comme il est avec le fichier de monde harvest1.wld que nous avons utilisé avant. Essayez le !