--- jupytext: text_representation: extension: .md format_name: myst format_version: 0.13 jupytext_version: 1.15.1 kernelspec: display_name: C++17 language: C++17 name: xcpp17 --- # Laby, niveau 0: démonstration 1. Exécutez la cellule suivante pour faire apparaître le labyrinthe. Ce labyrinthe sert de démonstration. Le programme dans la cellule encore en dessous permet à la fourmi d'en sortir, en lui donnant une suite d'ordres simples : avancer, tourner à droite, etc. La fourmi va s'amuser un peu avec le caillou et éviter la toile d'araignée. 2. Exécutez le programme. 3. Utilisez les boutons de commande du labyrinthe pour suivre l'exécution du programme pas-à-pas, en marche arrière, etc pour bien comprendre ce que fait la fourmi. 4. Consultez la [documentation](#Documentation) ci-dessous. Les éléments qui y sont décrits vous servirons progressivement au fur et à mesure des défis. Vous reviendrez régulièrement la consulter. 5. Passez au [niveau suivant](1a.md). ```{code-cell} #include <laby/global_fr.hpp> LABY("0") ``` ```{code-cell} debut(); droite(); avance(); prend(); gauche(); avance(); pose(); droite(); avance(); gauche(); avance(); avance(); droite(); ouvre(); ``` <a name="Documentation"></a> # Documentation +++ ## Constantes <table> <tr><td>Mur </td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/wall.svg"/></td> <td>Sortie </td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/exit.svg"/></td></tr> <tr><td>Caillou </td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/rock.svg"/> </td><td>PetitCaillou</td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/nrock.svg"/></td></tr> <tr><td>Toile </td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/web.svg"/></td> <td>PetiteToile</td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/nweb.svg"/></td></tr> <tr><td>Vide </td><td><img src="https://raw.githubusercontent.com/nthiery/laby-jupyter/master/share/laby/tiles/void.svg"/></td> <td>Inconnu </td><td></td></tr> </table> ## Instructions debut(); // Recommence le niveau avance(); // Fait un pas vers l'avant droite(); // Fait pivoter la fourmi vers la droite gauche(); // ou la gauche prend(); // Prend le caillou situé sur la case devant la fourmi pose(); // Pose le caillou devant la fourmi dit("bonjour"); // Dit bonjour regarde(); // Renvoie Vide, Caillou, PetitCaillou, Mur, // Toile, PetiteToile, Sortie, ou Inconnu // selon ce qui se trouve sur la case devant la fourmi ouvre(); // Ouvre la porte située devant la fourmi (fin du niveau) ## Constructions Tant que la condition est respectée, répèter les instructions : while ( condition ) { instructions; } Si condition est vrai, exécuter les instructions 1 sinon les instructions 2 : if ( condition ) { instructions1; } else { instructions2; } Définition d'une fonction `ma_fonction` : void ma_fonction() { instructions; } Boucle for avec compteur; ici pour compter de 0 à 4 inclus : for ( int i = 0 ; i <= 4 ; i++ ) { instructions; }