La tortue
Le module turtle est écrit sur le principe de la "tortue logo", écrit dans les années 1970 et utilisé pour apprendre la
programmation aux enfants.
Vous trouverez sur internet de nombreux logiciels reprenant cette idée de la tortue logo dans le but souvent
d'enseigner l'algorithmique et/ou la géométrie élémentaire à de jeunes enfants.
L'intérêt d'utiliser ici ce module : pouvoir profiter d'instructions simples de tracés de figures. On peut
ainsi concevoir et tester quelques algorithmes de représentations de figures, qui ne sont pas nécessairement simples.
Prise en main.
Découvrez le module à l'aide des exemples sur le livre de G.Swinnen, des exemples sur wikibooks, ou encore ici (interactif).
Un premier exemple
Une fonction pour représenter un rectangle de côtés parallèles aux bords de l'écran.
from turtle import *
def rectangle(cbg, chd, couleur) :
""" cbg=(x,y) (coin bas gauche)
et chd=(x',y') (coin haut droit)
sont deux couples de nombres,
coordonnées de sommets opposés
du rectangle."""
pencolor(couleur) # crayon de couleur
penup() # on lève le crayon
# permet de ne pas tracer lors des déplacements
setposition(cbg[0],cbg[1]) # la tortue va en (cbg[0],cbg[1])
setheading(0) # la tortue regarde vers la droite
pendown() # baisse crayon pour tracer
setposition(chd[0],cbg[1]) # la tortue va au coin inférieur droit
setposition(chd[0],chd[1]) # la tortue va au coin supérieur droit
setposition(cbg[0],chd[1]) # la tortue va au coin supérieur gauche
setposition(cbg[0],cbg[1]) # la tortue va au coin inférieur gauche
setworldcoordinates(-1,-1,12,12) # pour ouvrir une fenêtre
# coin inférieur droit (-1,-1)
# coin supérieur gauche (12,12)
rectangle((0,0),(10,10),'red')
rectangle((1,1),(9,8),'blue')
rectangle((2,3),(7,5),'green')
mainloop() # pour maintenir fenêtre ouverte
Un échiquier
On cherche à dessiner un échiquier (une grille) de l lignes sur c colonnes.
from turtle import *
def echiquier(l,c, cbg , u ) :
""" l (type int) : nombre de lignes de l'échiquier.
c (type int) : nombre de colonnes de l'échiquier.
cbg=(x,y) couple des coordonnées du coin inférieur gauche.
u (type int ou float) : longueur de côté d'une case de l'échiquier.
"""
# dessin des bords des lignes de l'échiquier :
setheading(0)
for i in range(l+1) :
penup()
setposition(cbg[0],cbg[1]+i*u)
pendown()
setposition(cbg[0]+c*u,cbg[1]+i*u)
# dessin des bords des colonnes de l'échiquier :
setheading(90)
for i in range(c+1) :
penup()
setposition(cbg[0]+i*u,cbg[1])
pendown()
setposition(cbg[0]+i*u,cbg[1]+l*u)
############ main ################################
l=5
c=7
u=2
setworldcoordinates(-1,-1,c*u+1, l*u+1) # fenêtre du graphique
shape("turtle") # une tortue qui ressemble à une tortue
echiquier(l,c, (0,0), u)
hideturtle() # on cache la tortue
mainloop() # pour maintenir fenêtre ouverte