Décisions

Tutoriel

Quand Guido était adolescent, il était un peu rebèle. Ses parents lui avaient toujours indiqué la moindre petite chose à faire : chaque virage, chaque pas. Il décida un jour de déclarer : "Je peux prendre mes propres décisions !" et se mit à expliquer à ses parents comment lui parler pour utiliser ces nouvelles capacités.

Il leur parla d'espressions booléennes, qui pouvaient juste être vraies ou fausses. Guido ferait des choses différentes selon que le résultat de la condition serait vrai ou faux. Voici un des exemples qu'il donna :

if next_to_a_beeper:
    pickbeeper

Guido a la capacité de sonder le monde qui l'entoure et d'agir en conséquence. "Golly, ce que tu grandis vite !" lui dirent ses parents. Ils lui demandèrent ce qu'il pouvait sonder, et il leur fournit cette liste :

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.
left_is_clear Vrai s'il n'y a pas de mur directement à gauche de Guido. Faux s'il y en a un.
left_is_blocked Vrai s'il y a un mur directement à gauche de Guido. Faux sinon.
right_is_clear Vrai s'il n'y a pas de mur directement à droite de Guido. Faux s'il y en a un.
right_is_blocked Vrai s'il y a un mur directement à droite de 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.
facing_north Vrai si Guido est orienté vers le nord. Faux sinon.
not_facing_north Vrai si Guido n'est pas orienté vers le nord. Faux s'il est orienté vers le nord.
facing_south Vrai si Guido est orienté vers le sud. Faux sinon.
not_facing_south Vrai si Guido n'est pas orienté vers le sud. Faux s'il est orienté vers le sud.
facing_east Vrai si Guido est orienté vers l'est; Faux sinon.
not_facing_east Vrai si Guido n'est pas orienté vers l'est. Faux s'il est orienté vers l'est.
facing_west Vrai si Guido est orienté vers l'ouest. Faux sinon.
not_facing_west Vrai si Guido n'est pas orienté vers l'ouest. Faux s'il est orienté vers l'ouest.

À votre tour

Guido n'a pas accompli son service communautaire pour recevoir son diplome d'études secondaires. Il est donc assigné à rammasser les poubelles de la deuxième rue. Construisez un monde contenant des sonnettes disséminées sur la deuxième rue entre la première et la 12ème avenue. Il ne peut y avoir qu'une sonnette par intersection, mais certaines intersections peuvent être vides. Guido démarrera à l'intersection de la 1ère avenue et de la 2ème rue, regardant vers l'est.

Le monde de départ pourrait ressembler à ceci:

Position de départ, étape 8

Faites parcourir la seconde rue à Guido, rammassant 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 la 12ème rue, il doit rammener 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 :

Position finale, étape 8


Précédent | Index | Suivant

Copyright © 2003 Roger Frank.