On rappelle ci-dessous les instructions utiles du module turtle.
Appel
Rôle
hideturtle()
Cache la tortue.
speed(n)
Définit la vitesse de l'animation. n est un entier entre 1 (lent) et 10 (rapide).
animation(s)
Autorise ou non les animations. s est soit 'on' (avec animations, valeur par défaut) soit 'off' (sans animations).
penup()
Lève le crayon : les déplacements de la tortue ne sont plus dessinés.
pendown()
Baisse le crayon : les déplacements de la tortue sont dessinés.
heading()
Renvoie la direction vers laquelle pointe la tortue sous la forme d'une mesure d'angle en degrés.
setheading(d)
Définit la direction vers laquelle pointe la tortue. d est une mesure d'angle en degrés.
position()
Renvoie la position de la tortue sous la forme d'un couple de nombres (x,y).
goto(x, y)
La tortue se déplace à la position (x,y). x et y sont des nombres.
left(a)
La tortue tourne sur elle-même vers la gauche de a degrés. a est un nombre.
right(a)
La tortue tourne sur elle-même vers la droite de a degrés. a est un nombre.
forward(p)
La tortue avance de p pixels. p est un nombre.
Dans CodEx, il est possible d'augmenter la vitesse jusqu'à speed(100) !
On souhaite dessiner des arbres en utilisant le module turtle.
Cet arbre a une structure récursive : les sous-arbres de droite et de gauche ont, à un niveau de profondeur près, la même forme que l'arbre entier.
{ .autolight}
{ .autolight}
Cette observation étant faite, on peut définir un algorithme de construction :
Tracer un trait de la longueur souhaitée ;
Si cette longueur est suffisamment grande :
Prendre note de la position actuelle de la tortue et de la direction dans laquelle elle pointe ;
Tourner la tortue de l'angle souhaité vers la droite et dessiner un sous-arbre ;
Revenir au point et à la direction notés à l'étape 2 ;
Tourner la tortue de l'angle souhaité vers la gauche et dessiner un sous-arbre.
On précise quelques informations :
la longueur de départ est de 100 pixels ;
à chaque étape, la longueur est multipliée par 0.75 ;
l'angle de rotation du départ est de 60 degrés ;
à chaque étape, l'angle de rotation est multiplié par 0.7 ;
on ne construit un sous-arbre que si la longueur est strictement supérieure à 20 pixels.
Vous devez donc compléter le script ci-dessous permettant de construire l'arbre souhaité. La construction sera lancée par l'appel incomplet arbre(...,...) à la ligne 15.
La fonction modele dessine à l'écran l'arbre attendu. Vous pouvez l'exécuter ou non !
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)