Guido a la capacité de sonder le monde qui l'entoure et d'agir en conséquence. Il fait cela en utilisant l'instruction if <test>.
Le résultat du test peut être vrai ou faux. Par exemple :
if next_to_a_beeper: pickbeeper
fera ramasser la sonnette seulement si elle est là, rien sinon.
Comme pour l'instruction do: on pourra mettre plusieurs instructions derrière le 'if' si besoin-est, en utilisant LA MEME indentation :
if next_to_a_beeper: pickbeeper move
Voici quelques tests de Guido. Vous les retrouverez dans le poly de résumé des commandes de Guido.
front_is_clear | Vrai si il n'y a pas de mur directement devant Guido. Faux si il y a un mur. |
front_is_blocked | Vrai s'il y a un mur devant Guido. Faux sinon. |
next_to_a_beeper | Vrai si Guido est sur une intersection comportant au moins une sonnette. Faux sinon. |
not_next_to_a_beeper | Vrai si l'intersection courante est vide; Faux si elle comporte au moins une sonnette. |
any_beepers_in_beeper_bag | Vrai s'il reste au moins une sonnette dans le sac de Guido. Faux si son sac est vide. |
no_beepers_in_beeper_bag | Vrai si le sac de Guido est vide. Faux s'il y reste au moins une sonnette. |
Guido doit ramasser les sonnettes perdues dans de la deuxième rue. Ouvrez le monde 'deuxieme_rue.wld' :
En utilisant 'do:' et des tests, faites parcourir la seconde rue à Guido, ramassant toutes les sonnettes qu'il trouve sur son passage. Souvenez-vous que s'il n'y a pas de sonnette à une intersection et que vous demandez à Guido d'en prendre une, il se plaindra et s'arrêtera. Utilisez l'un des tests de la table ci-dessus pour décider si une sonnette est à récupérer. Quand Guido atteint le mur (test), il doit ramener toutes les sonnettes à sa position de départ, s'orienter de nouveau vers l'est et s'éteindre.
Avec la position de départ ci-dessus, les choses devraient ressembler à cela à la fin :
lorsque le programme fonctionne, enregistrez-le dans vos documents sous le nom :'deuxieme_rue.gvr'
Copyright © 2003 Roger Frank.