1 277
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
from random import *
speed=
hideturtle()
penup()
# ''A'' (comme ''avance'') pour ''fd(100)'';
# ''
# ''
La traduction se fait par une ''RegExp'', qui, tel un chien de chasse, cherche toutes les occurences d'une lettre, et les remplace par le texte correspondant.
from re import *
programme='
programme=sub('A','fd(100); ',programme)
programme=sub('
exec(programme)
</source>
Le remplacement des lettres mnémotechniques par des instructions en Python est à l'image de ce que fait un [[w:compilateur|compilateur]] comme celui de Python. Avec ça, au moins, la recette pour dessiner un triangle est facile à retenir: ''avancer; tourner; avancer; tourner; avancer; tourner'', étant entendu que chaque fois qu'on avance, c'est de 100 pixels, et chaque fois qu'on tourne, c'est de 120° vers la droite.
==Modification du script==
Pour transformer le triangle en flocon, on doit remplacer chaque instruction ''avancer'' par la séquence ''avancer; gauche; avancer; droite; avancer; gauche; avancer''. Du moment que chaque fois qu'on avance, c'est du même nombre de pixels (par exemple 81) et chaque fois qu'on tourne à gauche, c'est de 60° et chaque fois qu'on tourne à droite, c'est de 120°. Pour obtenir cet effet, il suffit de remplacer chaque ''A'' par ''ApAmApA'':
<source lang="python">
from turtle import *
from re import *
programme='AmAmAm'
programme=sub('A','ApAmApA',programme)
programme=sub('A','fd(81); ',programme)
programme=sub('m','rt(120); ',programme)
programme=sub('p','lt(60); ',programme)
exec(programme)
</source>
Ce script dessine bien une étoile:
[[Fichier:Kochpy1.svg|center]]
==Dessin du triangle de Von Koch==
Pour finir le dessin du flocon fractal, il suffit d'itérer le remplacement de chaque ''A'' par ''ApAmApA'':
<source lang="python">
from turtle import *
from re import *
programme='AmAmAm'
for n in range(4):
programme=sub('A','ApAmApA',programme)
programme=sub('A','fd(2); ',programme)
programme=sub('m','rt(120); ',programme)
programme=sub('p','lt(60); ',programme)
exec(programme)
</source>
Ce script dessine ceci en 9 lignes de Python:
[[Fichier:Kochpy1.svg|center]]
=Voir aussi=
|