turtle
Planche de TD pour un cours dispensé à l’université de Rennes 2
Le but de cette séance est de continuer à vous habituer à la programmation en Python et notamment aux notions de :
Pour cela, nous manipulerons le module turtle
dont le principe est de suivre dans une fenêtre l’évolution d’une tortue (symbolisée par une flèche) qui suivra vos instructions à la lettre.
Pour ce TD, vous créerez un nouveau fichier td2.py
dans le répertoire que vous avez créé à la première séance.
Dans ce nouveau nouveau fichier, votre code sera organisé de la manière suivante :
# Section 1 : les imports
import turtle
# Section 2 : les définitions de fonctions
[...]
def immeuble(n_etages, n_fenetres):
[...]
[...]
# Section 3 : les tests (un ou plusieurs par fonction codée)
[...]=3, n_fenetres=2)
immeuble(n_etages [...]
Notamment, vous définirez vos fonctions en début de fichier et les appels seront listés en fin de fichier. De cette manière, vous pourrez, d’une question à l’autre, réutiliser les fonctions déjà codées au besoin. Si vous souhaitez, à un certain moment, ne plus ré-exécuter vos tests de début de TD, il suffira de commenter les appels de fonction correspondants (mais pas les fonctions elles-mêmes !).
turtle
Lors de cette séance de TD, vous serez amenés à faire appel aux fonctions de base du module turtle
suivantes :
turtle.forward(dist)
: faire avancer la tortue de dist
unités ;turtle.left(alpha)
: faire tourner la tortue sur la gauche d’un angle de alpha
degrés ;turtle.right(alpha)
: faire tourner la tortue sur la droite d’un angle de alpha
degrés ;turtle.up()
: faire léviter la tortue (sa trace ne s’écrira donc plus à l’écran) ;turtle.down()
: stopper la lévitation de la tortue ;turtle.goto(x, y)
: faire se déplacer la tortue jusqu’à la position (x, y)
.import turtle
for i in range(100):
10 + i)
turtle.forward(90)
turtle.left(
# Attend un clic avant de fermer la fenetre turtle.exitonclick()
rectangle
, carre
et immeuble
présentées dans la section L’immeuble ci-dessous ?Pour cet exercice, votre code final devra ressembler à :
import turtle
# [...]
= 5
n_etages = 3
n_fenetres
immeuble(n_etages, n_fenetres)# Attend un clic avant de fermer la fenetre turtle.exitonclick()
L’exécution de ce code devra faire dérouler à l’écran une animation se terminant sur le dessin suivant :
Pour cela, vous définirez 4 fonctions (à l’emplacement des points de suspension dans l’extrait de code ci-dessus) :
position
permettra de placer la tortue à la position spécifiée, sans que celle-ci ne laisse de trace à l’écran ;rectangle
permettra de dessiner un rectangle à l’écran ;carre
permettra de dessiner un carré à l’écran ;immeuble
permettra de dessiner un immeuble tel que celui représenté ci-dessus à l’écran.position
qui permette de placer la tortue à la position spécifiée, sans que celle-ci ne laisse de trace à l’écranrectangle
qui permette de tracer à l’écran un rectangle de taille et de position spécifiées lors de l’appel de la fonction.carre
qui permette de tracer à l’écran un carré de taille et de position spécifiées lors de l’appel de la fonction. Est-il nécessaire de réécrire la fonction dans son ensemble (avec les appels successifs aux fonctions du module turtle
) ou est-ce possible de s’en sortir en une ligne de code ?immeuble
qui permette de tracer un immeuble à l’écran, connaissant son nombre d’étages et le nombre de fenêtres par étage. N’hésitez pas à faire un schéma de l’immeuble sur papier pour vous rendre compte des dimensions à utiliser. Vous définirez au sein de la fonction immeuble
les grandeurs caractéristiques nécessaires (taille des fenêtres, espace inter-fenêtres, etc.)."grey"
) et les fenêtres en jaune ("yellow"
). Pour cela, vous aurez besoin des fonctions turtle.fillcolor(couleur)
, turtle.begin_fill()
et turtle.end_fill()
qui s’utilisent comme suit :
turtle.fillcolor(couleur)
turtle.begin_fill()# Ici, tracer le polygone
turtle.end_fill()
Cet exercice est à rendre sur CURSUS avant la séance de TD de la semaine prochaine. Vous pouvez le rendre par binôme ou trinôme, mais dans ce cas, le nom de tous les membres du groupe doit être inscrit dans le fichier python en commentaire avant le import turtle
.
Dans cet exercice, vous allez tenter de dessiner à l’écran un château de cartes similaire à celui-ci :
Pour cela, vous devrez tout d’abord être capable de tracer un triangle (dont la base est horizontale) à une position donnée.
Écrivez une fonction qui prenne en entrée une position (sous la forme de deux entiers x
et y
), une longueur de la base base
et une hauteur hauteur
et qui trace à l’écran un triangle dont le point en bas à gauche a pour coordonnées (x, y)
et dont la base et la hauteur ont les dimensions demandées.
Écrivez une fonction qui prenne en entrée un nombre n
et trace à l’écran un château de cartes dont la base est composée de n
triangles. L’image fournie plus haut devra typiquement être générée par un appel à votre fonction avec pour argument n=4
. La hauteur et la largeur du château de carte seront définies de manière arbitraire.