Dans cet exercice, vous aller métamorphoser votre buggle en une fourmi de Langton. Ces petits animaux artificiels sont très intéressants parce qu'ils suivent des règles simples qui dépendent seulement de leur environnement local, et qu'après une période d'un comportement d'apparence chaotique, un schéma général apparaît
Les règles sont absolument triviales: pour calculer quel sera le prochain
pas, vous devez regarder la couleur actuelle du sol ( en utilisant
getCouleurSol()
). Si c'est blanc, changez la en noir, tournez à
droite et avancez d'une case. Si la couleur du sol est le noir, changez la
en blanc, tournez à gauche et avancez d'une case.
Il est difficile de trouver des règles plus simples, n'est-ce pas ? Et bien,
allons-y et codons-les maintenant. Vous avez à compléter la méthode
step()
, qui définit le comportement de la fourmi à chaque
pas. Vous utiliserez probablement la méthode getCouleurSol()
pour récupérer la valeur de la case sur laquelle la fourmi se trouve. Les
couleurs intéressantes sont tout simplement Color.black
pour le
noir ou Color.white
pour le blanc.
Pour comparer les couleurs, il n'est pas possible d'utiliser le double signe égal (==) parce ces choses ne sont pas des valeurs scalaires normales mais des objets. À la place, vous devez écrire quelque chose comme cela :
Color c /* = une initialisation*/; if (c.equals(Color.black)) { /* c'était égal */ } else { /* ce n'était pas égal */ }[/!]
Changer la couleur du sol n'est pas difficile, seulement un peu long : vous
avez à changer la couleur de la brosse de votre buggle, l'abaisser (pour
marquer la case courante -- avec baisseBrosse()
), et relever la
brosse (avec leveBrosse()
) pour éviter des problèmes lorsque la
buggle va se déplacer. Vous être naturellement libre d'organiser votre code
comme vous le souhaitez, mais vous pouvez vouloir écrire une méthode
setCouleurSol(couleur)
pour factoriser le tout.
Comme vous pouvez le constater avec l'exécution de cet exercice, l'intérêt dans cet algorithme est qu'après environ 10 000 pas de comportement relativement chaotique, la fourmi commence à suivre un schéma régulier. L'émergence de ce schéma régulier à partir du chaos est réellement fascinant, n'est-ce pas ? Passez à l'exercice suivant pour en voir plus.