Aller au contenu principal

TP4 - Turtle

Objectifs
  1. Comprendre le concept de variable ;
  2. Effectuer des affectations ;
  3. Gérer des cas dans des programmes ;
  4. Répéter des instructions.
Au préalable
  1. Se créer un dossier SNT sur votre ordinateur ou clé USB
  2. Dans ce dossier, créer un dossier T3 - Programmation (Programmation Orientée Objet)

Sur EduPython ou autre instance python, faire :

  1. Créer un nouveau fichier en cliquant sur l'icône 📄, ou en appuyant sur CTRL+N
  2. Enregistrer le fichier sous le nom TP4_Turtle en cliquant sur l'icône 💾, ou en appuyant sur CTRL+S
TP

L'ensemble des exercices se fait sur le logiciel EduPython.

Rappels

On utilise int(input()) pour saisir un entier et le stocker dans une variable.
Pour afficher le contenu d’une variable ou du texte, on utilise la fonction print() :

variable = int(input("saisir quelque chose"))
print(variable)
print("Afficher un texte")

Les conditions permettent d'exécuter un bout de code, ou bien un autre, suivant le résultat d'une condition :

age = 18
if age >= 18 :
print("Je suis majeur")
else :
print("Je suis mineur")

Pour répéter des instructions, on utilise la boucle for :

for i in range(0,10) :
print("Bonjour")

"Bonjour" sera répété 10 fois.

Turtle

Turtle

Turtle est une bibliothèque (ensemble de fonctionnalités) utilisable en python, permettant de programmer graphiquement des dessins :

Exemple de fonctionnement

Recopier le cde suivant sur un nouveau document python, et l'exécuter :

from turtle import *
pencolor("green")
backward(50)
right(90)
forward(50)
left(90)
forward(50)
right(90)
forward(50)
right(90)
forward(50)
up()
backward(100)
down()
pencolor("red")
right(90)
forward(100)
right(160)
forward(105)
left(160)
forward(100)
right(90)
up()
forward(40)
down()
pencolor("blue")
forward(100)
backward(50)
right(90)
forward(100)
mainloop()

Fonctionnalités

Turtle dispose d'un ensemble de fonctionnalités pour dessiner :

FonctionSignification
forward(distance)avance le trait en fonction de la distance (en pixel)
backward(distance)recule le trait en fonction de la distance (en pixel)
right(degre)tourne le trait à droite en fonction de l’angle (en degre)
left(degre)tourne le trait à gauche en fonction de l’angle (en degre)
up()Lève le crayon (utile pour les déplacements)
down()Baisse le crayon pour dessiner
pencolor(couleur)Change la couleur du crayon en fonction d’une couleur (en anglais)
mainloop()OBLIGATOIRE, permet d’afficher la fenêtre de dessin

Carré

On souhaite dessiner un carré jaune de taille 100 pixels :

  1. Mettre la couleur du crayon en jaune.
  2. Faire avancer le trait de 100 pixels.
  3. Pivoter le crayon de 90 degrés.
  4. Écrire les instructions nécessaires pour finir le carré.

On peut remarquer que dans le programme, des lignes se répètent et sont identiques.

  1. Modifier le programme pour avoir une boucle répétant les informations nécessaires pour dessiner ce même carré.

Pentagone

Un pentagone est un polygone à 5 côtés.

  1. En s'inspirant du programme précédent, dessiner un pentagone rouge.

Maintenant que l'on sait dessiner un pentagone, nous pouvons répéter la boucle permettant de le dessiner.

  1. Rajouter une boucle permettant de dessiner 6 pentagones. On changera l’angle à la fin de chaque pentagone pour faire un décalage, et ainsi voir tous les pentagones.
    Astuce

    Pour dessiner plus vite, écrire speed(0) avant de dessiner.

Polygone

On souhaite maintenant modifier un peu le programme pour pouvoir saisir au clavier un nombre correspondant au nombre de côtés d’un polygone à dessiner.

  1. Rajouter l'instruction permettant de saisir un entier au clavier, et l'affecter dans la variable nb_cotes.
  2. Modifier la boucle dessinant le pentagone de la question 3 pour dessiner le polygone. La boucle ne fera plus 5 tours, mais nb_cotes tours.

Un polygone doit posséder au minimum 3 côtés.

  1. À l'aide d'une condition, dessiner le polygone si le nombre de côté est supérieur ou égal à 3, et afficher "nombre de côtés insuffisant" dans le cas contraire.

Travail de groupe

Création

Par groupe de 2 voire 3, faire une carte de fêtes de fin d'année 🎅 🎄