The turtles next step is determined by the color of the square it is currently on.
If black, it inverts the color of the current square, turns left and moves one square forward.
If green, it again inverts the color of the current square, turns right and moves one square forward.
The result is a clump of altered squares, and then after around 10,000 steps a 'highway' which extends out forever.
Le pas suivant de la tortue est déterminé par la couleur de la cellule sur laquelle elle se situe.
- Si elle est noire, la tortue inverse la couleur de la cellule courante, tourne à gauche et se déplace un carré plus loin.
- Si elle est verte, la tortue inverse également la couleur de la cellule courante mais cette fois tourne à droite et va une cellule plus loin.
Le résultat final est un bloc des cellules dont la couleur a été altérée. Ensuite, après environ 10.000 étapes, on distingue une route qui se prolonge dehors pour toujours....
# Commande principale: demarrer
pour new
# set defaults, screen, pen et tortue
init ftd [400 400]
fcfg noir fcc vert levecrayon cachetortue
fin
pour nextstep
donne "col item 2 trouvecouleur pos
fcc angcol baissecrayon avance 0 levecrayon
si :col = 0 [tournegauche 90 avance 6 stop]
si :col = 255 [tournedroite 90 avance 6]
fin
pour angcol
donne "num item 1 trouvecouleur pos
donne "red :num + 0.2 * (255-:num)
donne "green 255 - item 2 trouvecouleur pos
retourne phrase liste :red :green 0 # remplace :red with 0 repetepour b&w image
fin
pour demarrer
new ftc 4
repete 10700 [nextstep]
fin
|
Mettre ensuite le crayon en mode inversé. Pour cela, rajouter la commande
inversecrayon en dernière instruction de la procédure new puis remplacer la procédure NextStep par celle-ci.
pour nextstep
tournedroite tronque 0.707*(item 2 trouvecouleur pos) + 90
avance 0 avance 6
fin
|
368 étapes génèrent alors une forme symétique.