Lycée de Cachan BTS SIO 1
TP d'algorithmique - bonus numéro 2 Fonctions et module Tortue
1 Tortue
Nous allons nous intéresser à la bibliothèque graphique la plus élémentaire de Python, qui est le module turtle.
Bien sûr, pour pouvoir utiliser les fonctions de ce module, il faut commencer par les importer, par exemple avec la commande :
from turtle import *
La fenêtre de la tortue apparaît dès que l'on utilise une fonction du module turtle. Par exemple :
reset()
Une fenêtre s'ouvre alors. Au centre de cette fenêtre, se trouve un triangle : c'est la tortue.
Elle regarde vers la droite. Cette tortue peut se déplacer sur la fenêtre. Elle porte par ailleurs un stylo, qui peut être abaissé (la tortue trace alors un trait en se déplaçant) ou relevé (aucun trait n'est tracé). Une petite liste de fonctions utiles est donnée à la n de ce TP.
Dans toute la suite, pour éviter un certain nombre de bugs dus à l'utilisation d'une fenêtre graphique, nous allons inclure notre code dans une boucle d'attente comme dans l'exemple ci-dessous.
Exemple.
Reproduire en Python l'exemple ci-dessous : 1. reset()
2. try :
3. listen()
4. # Début des instructions 5. forward(100)
6. up()
7. forward(50)
8. down()
9. forward(100)
10. left(60)
11. forward(100)
12. # Fin des instructions
13. mainloop()
14. finally :
15. bye()
1
2 Exercices
Exercice 1.
Écrire en Python une fonction carre prenant en argument une variable taille et traçant un carré centré au point où se situe la tortue au moment d'appeler la fonction et de côté taille.
Exercice 2.
Écrire une fonction permettant de tracer un bonhomme en l de fer.
Exercice 3.
Pour aller plus loin, on pourra essayer de créer des fonctions récursives permettant de tracer : 1) La fractale carrée :
Itération 1 Itération 2 Itération 3
2) la courbe de Koch :
Itération 1 Itération 2 Itération 3
3 Petite liste de fonctions utiles
• forward(dist) : (ou fd(dist)) fait avancer la tortue de dist
• backward(dist) : (ou bk(dist)) fait reculer la tortue de dist
• left(angle) : fait tourner la tortue de angle vers la gauche (en degrés par défaut)
• right(angle) : de même vers la droite
• goto(x,y) : déplace la tortue au point de coordonnées (x,y)
• undo() : annule la dernière action (peut être répété)
• home() : remet la tortue à l'origine sans eacer le tracé
• reset() : remet la tortue à l'origine et eace le tracé
• up() : lève le stylo
• down() : abaisse le stylo
• speed(n) : règle la vitesse. Si n = 0, le tracé est quasi instantané, si n = 10, il est rapide, si n = 1 il est très lent.
• color(couleur) : xe la couleur du stylo (le paramètre couleur est une chaîne de caractères, par exemple red, blue, black etc..)
• circle(rayon,angle) : trace un (arc de) cercle. Le paramètre angle est facultatif (valeur par défaut 360)
• bye() : permet de fermer la fenêtre
• onscreenclick(fct) : exécute la fonction passée en paramètre au point où l'on clique. La fonction fct doit prendre deux paramètres, qui sont l'abscisse et l'ordonnée du point où l'on a cliqué.
2