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 5, effacer ou bien colorier
Les explications
Un des grands bonds en avant historiques de l'informatique a été accompli lorsque nous avons pu ajouter un peu d'intelligence aux calculatrices.
Après avoir réussi à faire calculer des machines à notre place, nous pouvions désormais leur faire suivre des décisions.
Il ne s'agit pas d'intelligence, car la machine ne prend aucune décision par elle-même. Elle ne fait que suivre des décisions programmées à l'avance.
Et ce que nous allons faire maintenant, c'est d'utiliser ce mécanisme de programmation de prise de décision afin de faire comme si notre fourmi était intelligente et qu'on lui avait appris une règle à suivre.
En programmation, ce mécanisme pour préprogrammer une prise de décision s'appelle une alternative.
En langage C, une alternative s'écrira comme ceci :
if (condition) {
instructions_si_condition_vraie
} else {
instructions_si_condition_fausse
}
-
Dans
condition
, nous pourrons utiliser des instructions spécifiques qui sont parfois vraies, parfois fausses ; -
Dans le cas où la condition est vraie, seules les instructions (que nous avons dénommées ici plus haut
instructions_si_condition_vraie
) qui sont placées entre la première paire d'accolades ({...}) seront exécutées ; -
Mais dans le cas contraire (si la condition est fausse), seules les instructions (que nous avons dénommées ici plus haut
instructions_si_condition_fausse
) qui sont placées entre la seconde paire d'accolades ({...}) seront exécutées !
La condition que nous allons pouvoir utiliser sera une nouvelle instruction particulière :
is_colored()
qui indique si oui (vrai) ou non (faux) la case sous le curseur est coloriée.
Cela veut donc dire que deux cas de figures peuvent se produire :
a) soit la case sous le curseur est coloriée et dans ce cas l'instruction is_colored()
sera considérée comme vraie ;
b) soit la case sous le curseur n'est pas coloriée et dans ce cas l'instruction is_colored()
sera considérée comme fausse.
Les consignes de notre mission
Nous avions un programme qui nous permettait de colorier la case centrale puis de l'effacer. Nous allons maintenant devoir ajouter une alternative pour que notre programme efface ou bien colorie la case centrale selon que la case sous le curseur est coloriée ou non.
Autrement dit :
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) 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 :
- La case se colorie en rouge lorsque le curseur arrive dessus ;
- La case se colorie en bleu puisque la case sous le curseur n'est pas coloriée.
La fourmi suis donc bien la règle ! Mais elle ne fait qu'une étape. Nous allons maintenant faire vivre plus d'étapes à notre fourmi !