Un fichier de monde Guido van Robot (avec l'extension .wld) définit l'environnement
dans lequel Guido vit et se déplace. Il spécifie la disposition des rues et des avenues, les murs
d'enceinte et les murs intérieurs, le placement des sonnettes, ainsi que la position de départ,
l'orientation de Guido et le nombre de sonnettes dans son sac.
Le monde de Guido est une grille bidimensionnelle d'intersections appelées coins (ou croisements) :
avenue et un numéro de rue (par exemple, la 1re Avenue et la 5e Rue est le coin 1 5). Le coin inférieur gauche du monde est la 1re Avenue et la 1re Rue (1 1).N – Nord (vers le haut / vers les numéros de rue croissants)E – Est (vers la droite / vers les numéros d'avenue croissants)S – Sud (vers le bas / vers les numéros de rue décroissants)W – Ouest (vers la gauche / vers les numéros d'avenue décroissants)
Chaque ligne dans un fichier .wld spécifie un composant du monde de Guido.
Robot, Wall / Mur, Beepers / Sonnettes, Size / Taille) et les points cardinaux (N, E, S, W) ne sont pas sensibles à la casse.#). Les commentaires de fin de ligne après une instruction sont également supportés.
L'instruction Robot positionne Guido dans le monde, indique la direction vers laquelle il est orienté et définit le nombre initial de sonnettes dans son sac.
Robot <avenue> <rue> <direction> <sonnettes>
Paramètres :
<avenue> – Le numéro de l'avenue de départ (entier positif ≥ 1).<rue> – Le numéro de la rue de départ (entier positif ≥ 1).<direction> – La direction cardinale initiale vers laquelle Guido est tourné (N, E, S ou W).<sonnettes> – Le nombre de sonnettes dans le sac de Guido (entier ≥ 0, ou -1 pour un sac infini).Règles :
Robot.Exemples :
Robot 1 1 E 0 # Guido commence à la 1re Ave & 1re Rue, face à l'Est, avec 0 sonnette Robot 4 3 N 0 # Guido commence à la 4e Ave & 3e Rue, face au Nord, avec 0 sonnette Robot 1 5 E 4 # Guido commence à la 1re Ave & 5e Rue, face à l'Est, avec 4 sonnettes Robot 1 2 N -1 # Guido commence à la 1re Ave & 2e Rue, face au Nord, avec une infinité de sonnettes
L'instruction Wall (ou Mur) place des murs intérieurs qui bloquent le passage de Guido. Si Guido tente d'avancer contre un mur, une erreur d'arrêt d'urgence survient et le programme se termine.
Wall <avenue> <rue> <direction> [<longueur>]
Paramètres :
<avenue> – Le numéro d'avenue du coin de départ (entier ≥ 1).<rue> – Le numéro de rue du coin de départ (entier ≥ 1).<direction> – Indique quel côté du coin est bloqué par le mur :
N – Mur horizontal au Nord du coin (entre cette rue et la rue au-dessus).S – Mur horizontal au Sud du coin (entre cette rue et la rue au-dessous).E – Mur vertical à l'Est du coin (entre cette avenue et l'avenue à droite).W – Mur vertical à l'Ouest du coin (entre cette avenue et l'avenue à gauche).<longueur> (optionnel) – La longueur du mur en blocs (entier ≥ 1). Si elle est omise, la longueur par défaut est de 1 bloc.Règles d'extension des murs :
N ou S) s'étendent toujours vers l'Est sur la longueur spécifiée.E ou W) s'étendent toujours vers le Nord sur la longueur spécifiée.Wall 3 7 N 4 est identique à Wall 3 8 S 4 (un mur horizontal de 4 blocs entre la 7e et la 8e Rue, allant de la 3e Ave à la 6e Ave).Wall 2 4 E 3 est identique à Wall 3 4 W 3 (un mur vertical de 3 blocs entre la 2e et la 3e Avenue, allant de la 4e Rue à la 6e Rue).Exemples :
Wall 2 4 N # Mur horizontal de 1 bloc au nord du coin (2, 4) Wall 2 4 E # Mur vertical de 1 bloc à l'est du coin (2, 4) Wall 4 4 N 2 # Mur horizontal de 2 blocs au nord de la 4e Rue, commençant à la 4e Ave et s'étendant vers l'Est Wall 7 3 E 6 # Mur vertical de 6 blocs à l'est de la 7e Avenue, commençant à la 3e Rue et s'étendant vers le Nord
L'instruction Beepers (ou Sonnettes) place une ou plusieurs sonnettes à un coin spécifique dans le monde pour que Guido puisse les ramasser pendant l'exécution.
Beepers <avenue> <rue> <nombre_de_sonnettes>
Paramètres :
<avenue> – Le numéro d'avenue du coin (entier ≥ 1).<rue> – Le numéro de rue du coin (entier ≥ 1).<nombre_de_sonnettes> – Le nombre de sonnettes placées à cette intersection (entier positif ≥ 1).Exemples :
Beepers 4 4 1 # Place 1 sonnette au coin de la 4e Avenue et de la 4e Rue Beepers 2 5 3 # Place 3 sonnettes au coin de la 2e Avenue et de la 5e Rue
| Instruction | Syntaxe | Description |
|---|---|---|
Robot |
Robot <ave> <rue> <dir> <sonnettes> |
Définit le coin de départ de Guido, son orientation (N, S, E, W) et le nombre de sonnettes dans son sac. (Requis, exactement un) |
Wall / Mur |
Wall <ave> <rue> <dir> [<longueur>] |
Place un mur de longueur ≥ 1 (1 par défaut) bloquant le déplacement dans la direction dir. S'étend vers l'Est (horizontal) ou le Nord (vertical). |
Beepers / Sonnettes |
Beepers <ave> <rue> <nombre> |
Place nombre sonnettes au coin (ave, rue). |
labyrinthe.wld) :
# ========================================== # Exemple de monde Guido van Robot # ========================================== # Placer Guido à la 1re Avenue et 5e Rue, orienté vers l'Est avec 1 sonnette Robot 1 5 E 1 # Placer des sonnettes sur les coins Beepers 3 5 1 # Définir les murs du labyrinthe Wall 2 4 N Wall 2 4 E Wall 3 4 E Wall 4 4 N 2 Wall 2 5 N Wall 2 6 E Wall 3 6 E Wall 4 5 N 2
Référence du langage | Index | Leçon 1
Copyright © 2026 Stas Zytkiewicz, Jeffrey Elkner, Roger Frank.