La tortue

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