## Instructions

Félicitations ! Vous venez d'écrire votre premier programme ! Vous avez compris l'idée maintenant : programmer, c'est simplement donner des instructions à l'ordinateur, qui les applique aveuglément. La plus grande difficulté est d'expliquer quoi faire à quelque chose d'aussi bête que l'ordinateur...

Le programme le plus simple est formé d'une suite d'ordres simples donnés à la machine. C'est assez comparable à une recette de cuisine où l'on dit cassez les œufs puis ajoutez du sel puis mélangez le tout puis faites cuire. Dans les programmes, de tels instructions sont appelées fonctions ou méthodes, et vous devez les doter de parenthèses:

    nomDeLaMethode()

[!thelang] veut que les instructions soient séparées [!python|scala]soit [/!]par des points-virgules (;)[!python|scala], soit par des retours à la ligne[/!]. L'exemple ci-dessus de recette s'écrirait donc à peu près comme ci-dessous. [!python|scala] (Vous pouvez aussi ajouter des points-virgules en fin de lignes, mais ce n'est pas indispensable)[/!].

    casserLesOeufs()[!java|c];[/!]
    ajouterDuSel()[!java|c];[/!]
    melangerLeTout()[!java|c];[/!]
    faireCuire()[!java|c];[/!]

[!python|scala]

Il serait également possible de l'écrire sous la forme suivante, mais placer plusieurs instructions sur la même ligne est généralement considéré comme une très mauvaise habitude car cela complique grandement la relecture du code après coup.

    casserLesOeufs(); ajouterDuSel(); melangerLeTout(); faireCuire();

[/!]

Bien entendu, ces méthodes n'existent pas en [!thelang], mais il serait possible de les définir par vous même (nous verrons plus tard comment définir vos propres méthodes).

Pour l'instant, nous allons utiliser les instructions de la buggle. Il y a une méthode pour chaque bouton du contrôle interactif. Pour faire la même chose que le bouton avance (faire avancer la buggle d'un pas), il faut écrire dans l'éditeur :

    [!java|scala|python]avance()[!java];[/!][/!][!c]avancePas();[/!]

De même, pour faire l'équivalent des boutons [!java|scala|python]recule[/!][!c]reculePas[/!], gauche et droite, il faut utiliser respectivement :

    recule()[!java|c];[/!]
    gauche()[!java|c];[/!]
    droite()[!java|c];[/!]

Le bouton marquer est un peu particulier, puisqu'il correspond à deux méthodes : la première lève le crayon, tandis que la seconde le baisse.

    leveBrosse()[!java|c];[/!]
    baisseBrosse()[!java|c];[/!]

La buggle offre d'autres méthodes, présentées dans le menu "Aide/À propos de ce monde". Elles seront introduites au fur et à mesure des besoins.

### Objectif de cet exercice

Notre second programme sera un peu plus compliqué, mais pas tellement. L'objectif de votre buggle est simplement de se dessiner une maison (une boîte), et de se cacher dedans. Vérifiez le monde objectif pour voir exactement ce que cela veut dire.

Utilisez votre brosse pour marquer le sol en marchant. Commencez à marquer le sol avec `baisseBrosse()`, et arrêtez avec `leveBrosse()` (par exemple pour entrer dans votre maison sans marquer le sol). La liste complète des instructions comprises par votre buggle est accessible dans le menu "Aide/À propos de ce monde".

### Après cet exercice

Quand vous changerez d'exercice, n'oubliez pas l'exercice d'application qui suit. Par défaut, il n'est pas visible dans la fenêtre de sélection, et il faut ouvrir le sous-arbre pour le voir. Lorsque vous ouvrez la fenêtre de sélection des exercices, la plupart d'entre eux sont cachés, comme cela:

Vous devez cliquer sur le petit symbole à gauche de la buggle pour déplier l'arbre, comme cela :