## Parcours en colonne

L'objectif de cette série d'exercices est de faire parcourir le monde à la buggle. Elle doit de plus numéroter les différentes cases rencontrées pour montrer son ordre de parcours.

La boucle principale du code que vous devez écrire est de la forme :

     tant que l'on n'est pas à la position finale
       aller à la prochaine position
       marquer le numéro de case au sol

À la différence des exercices vus jusque là, nous n'allons pas utiliser les méthodes `avance()`, `recule()` et autres, mais nous allons calculer les coordonnées de la prochaine position de la buggle, et utiliser la méthode `setPos(x, y)` pour téléporter la buggle directement à cette position. Par exemple, `setPos(3, 5)` téléporte la buggle sur la case où x=3 et y=5.

Le premier objectif est donc d'écrire une fonction booléenne indiquant si la buggle a atteint la position finale ou non, càd si elle est arrivée en bas à droite du monde. Vous utiliserez pour cela les méthodes `getMondeHauteur()` et `getMondeLargeur()` qui retournent respectivement la hauteur et la largeur du monde. Votre test est de comparer les coordonnées actuelles de votre buggle (que vous pouvez retrouver avec les méthodes `getX()` et `getY()`) aux dimensions du monde.
Attention, la première ligne et la première colonne sont numérotées 0 au lieu de 1, et l'origine (0, 0) est dans le coin en haut à gauche. Cela peut sembler étonnant, mais ces choses sont traditionnelles en informatique.

Ensuite, il faut écrire le code pour aller à la position suivante. Dans cet exercice, il faut parcourir le monde colonne par colonne. Donc, si on est tout en bas d'une colonne, il faut aller en haut de la colonne suivante. Sinon, il faut aller à la case du dessous.

À ce point, vous pouvez lancer votre programme pour vérifier que la buggle parcours bien le monde dans l'ordre souhaité, et s'arrête bien quand il faut. Pensez à utiliser le bouton stop pour arrêter l'exécution si votre programme ne se termine pas correctement.

Il est temps d'écrire au sol les numéros de case. Pour cela, vous aurez besoin d'un compteur initialisé à zéro au début de votre code, et incrémenté à chaque pas (par exemple avec `cpt += 1;`). Ensuite, il faut écrire cette valeur au sol (avec `ecritMessage()`).

Il est sans doute nécessaire d'écrire la valeur de la première[!java|scala|c] ou dernière[/!] case en dehors de la boucle principale[!java|scala|c], selon que vous utilisez une boucle `while` ou `do/while`[/!].

À vous de jouer...