Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
La fourmi de Langton - étape 6, en boucle avec repeat(n) loop
Les explications
Un des acquis de l'informatique dont on ne saurait plus se passer consiste à décrire en quelques lignes à un appareil électronique (pc, console, tablette, smartphone, ...) d'exécuter certaines instructions plusieurs fois.
Peut-être 10 fois, peut-être 10 milliards de fois (et ça ne prend pas même un centième de seconde à une console de jeu de répéter une opération 10 milliards de fois).
Si on devait faire ces caluls à la main...
Et tout ça tient en partie dans le concept incontournable des boucles.
Les syntaxes des différentes boucles du langage C sont un peu trop complexes pour cet atelier, mais le langage permet des mécanismes de simplifications (appelés "macros") que nous exploiterons afin de simplifier l'écriture des boucles.
Nous pourrons donc programmer une boucle de plusieurs étapes pour notre fourmi grâce à la macro repeat(n) loop
:
repeat (n) {
instructions_exécutées_n_fois
} loop;
Cette écriture permet de faire répéter plusieurs fois l'exécution d'un certain nombre d'instructions.
n
est le nombre de répétitions (le nombre d'étapes)instructions_exécutées_n_fois
est une série d'instructions qui seront répétées exactement n fois.
Par exemple, le code :
repeat (6) {
colorize();
erase();
} loop;
va provoquer 6 fois l'exécution d'un coloriage puis d'un effacement.
Les consignes de notre mission
Nous avions un programme qui nous permettait de colorier la case centrale selon que la case sous le curseur est coloriée ou non (grâce à une alternative).
Nous devons maintenant répéter cette alternative 8 fois !
Autrement dit :
REPETER 8 FOIS :
SI la case est coloriée, on l'efface
SINON, on la colorie
Alerte au piège !
Bien respecter l'ordre des opérations :
1) Créer le Paper animé ;
2) Se déplacer sur la case du milieu ;
3) REPETER 8 FOIS : SI la case est coloriée, on l'efface SINON, on la colorie ;
4) Afficher le Paper animé.
Le programme C (à vous les commandes !)
! N'hésitez pas à revenir en arrière et copier-coller ci-dessous votre programme précédent avant de le modifier.
Si tout est bon, on constate que le point centrale clignote :
- Première répétition :
- La case du milieu se colorie en rouge puisque la fourmi a été posée sur cette case, qui n'est pas coloriée ;
- Puis la case se colorie en bleu puisque la case sous la fourmi n'est pas coloriée.
- Deuxième répétition :
- La case du milieu se colorie en rouge puisque la fourmi n'a pas changé de case ; et elle est maintenant sur une case coloriée ;
- Puis la couleur de la case s'efface puisque la case sous la fourmi est coloriée.
- Troisième répétition :
- La case du milieu se colorie en rouge puisque la fourmi n'a pas changé de case ; et elle est maintenant sur une case non coloriée ;
- Puis la case se colorie en bleu puisque la case sous la fourmi n'est pas coloriée.
- Quatrième répétition :
- La case du milieu se colorie en rouge puisque la fourmi n'a pas changé de case ; et elle est maintenant sur une case coloriée ;
- Puis la couleur de la case s'efface puisque la case sous la fourmi est coloriée. etc.
La fourmi suis donc bien la règle et peut vivre et appliquer cette règle pendant plusieurs étapes. Il ne nous manque plus qu'à lui permettre de se déplacer en passant d'une case à l'autre !