0% ont trouvé ce document utile (0 vote)
18 vues7 pages

Djorogo Louis - tp6 Fonction Turle

Transféré par

djorogoandrea42
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues7 pages

Djorogo Louis - tp6 Fonction Turle

Transféré par

djorogoandrea42
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

SCIENCES TP6 : Fonctions

NUMÉRIQUES ET PROGRAMMATION 2nd


TECHNOLOGIE avec Turtle

1 JEU DE DÉ

A. Grand carré extérieur


Avec l’aide de la bibliothèque Turtle, nous allons dessiner des faces de dé à jouer.
Commençons en douceur avec la face 1.
● Utilisez edupython
● Créer un dossier TP8_FONCTION
● Créer un nouveau fichier de.py dans le dossier et importer la bibliothèque Turle.
from turtle import *

Pour tracer le carré extérieur, nous déplaçons notre curseur de départ au point inférieur droit de coordonnée
(50,-50) sans tracer de trait, puis grâce à une boucle for, nous tournons de 90° sur la gauche et avançons de 100,
4 fois d’affilée.

● Écrivez le code qui permet de tracer le carré extérieur. (Aidez vous du TP1 qui recense les fonctions de Turtle)

from turtle import*


up()
goto(50,-50)
down()
for i in range(4):
left(90)
forward(100)

B. Petit carré intérieur, centre


● Ajoutez à la suite du programme précédent, le code pour dessiner le petit carré noir intérieur. Le principe est
pratiquement le même, sauf que nous partons du point (10,-10) et traçons un carré de longueur 20 au lieu de 100.
Pour que le carré soit colorié en noir, le partir du code concernée doit etre contenu entre begin_fill() et end_fill().

from turtle import*


up()
goto(50,-50)
down()
for i in range(4):
left(90)
forward(100)
up()
goto(10,-10)
down()
begin_fill()
for i in range(4):
left(90)
forward(20)
end_fill()

C. La face 3 du dé
Maintenant nous souhaitons dessiner la face 3 du dé.

SNT Programmation : TP6 page 1/2


Les coordonnées de départ du petit carré inférieur droit sont (40,-40) tandis que celles du carré supérieur gauche sont (-20,20).
● Dessinez la face 3 du dé.

from turtle import*


up()
goto(50,-50)
down()
for i in range(4):
left(90)
forward(100)
up()
goto(10,-10)
down()
begin_fill()
for i in range(4):
left(90)
forward(20)
end_fill()
up()
goto(40,-40)
down()
begin_fill()
for i in range(4):
left(90)
forward(20)
end_fill()
up()
goto(-20,20)
down()
begin_fill()
for i in range(4):
left(90)
forward(20)
end_fill()

2 FONCTIONS
Grâce à de nombreux copié-collé, vous êtes donc parvenu à dessiner la face 3 du dé. Hors cette situation est peu satisfaisante
car on se retrouve avec 4 fragments de code, très similaires les uns à la suite des autres. Cela augmente la probabilité d’erreur,
rend la lecture du code difficile et sa modification un vrai casse tête.

Nous allons donc voir comment rendre ce code plus élégant en définissant des fonctions, c'est-à-dire des fragments de code
réutilisables, réalisant une tâche donnée pouvant dépendre d’un certain nombre de paramètres.

A. Fonction dessiner un carré

DÉFINITION : Une fonction associe une séquence d’instructions à un nom.


On doit définir la fonction, puis l’appeler.

● Définissez la fonction carre(), à l’aide du mot clé def, comme ceci (recopiez le code suivant dans votre programme) :
def carre():
for i in range(4):
left(90)
forward(20)
● Puis remplacez les sections de code correspondantes grâce à un appel à la fonction: carre() .

from turtle import*


def carre():
for i in range(4):

SNT Programmation : TP6 page 2/2


left(90)
forward(20)

up()
goto(50,-50)
down()
for i in range(4):
left(90)
forward(100)
up()
goto(10,-10)
down()
begin_fill()
carre()
end_fill()
up()
goto(40,-40)
down()
begin_fill()
carre()
end_fill()
up()
goto(-20,20)
down()
begin_fill()
carre()
end_fill()

B. Paramétrer la fonction
La fonction carre() a donc remplacé plusieurs sections de code, mais comme elle trace uniquement des carrés de longueur 20,
cette fonction ne peut pas être utilisée pour tracer le carré extérieur de longueur 100.

On va modifier la fonction afin qu’elle puisse tracer un carré de n’importe quelle taille.
Pour cela on va rajouter un paramètre à la fonction: la longueur souhaitée d’un côté du carré.
def carre(longueur:int):
for i in range(4):
....
● Modifiez la fonction carré avec le code ci-dessus (code à compléter).
● Remplacez les appels de fonction carre() par carre(20) ou carre(100).

from turtle import*


def carre(L):
for i in range(4):
left(90)
forward(L)

up()
goto(50,-50)
down()
carre(100)
up()
goto(10,-10)
down()
begin_fill()
carre(20)
end_fill()
up()
goto(40,-40)
down()

SNT Programmation : TP6 page 3/2


begin_fill()
carre(20)
end_fill()
up()
goto(-20,20)
down()
begin_fill()
carre(20)
end_fill()

C. Encore plus loin


Pour aller encore plus loin et éviter le code dupliqué, on remarque que le dessin des carrés diffère certes par leur longueur,
mais aussi par leur position.

● Modifiez la fonction carre() en ajoutant deux paramètres x et y, qui définissent les coordonnées de départ du carré.

def carre(x:int, y:int ,


longueur:int):
....

● Enfin, créez une fonction carre_rempli(x,y,longueur) qui appelle la fonction carre(x,y,longueur) et rempli le carré
de noir (begin_fill() et end_fill()).

● Pour finir, créez la face 5 d’un dé !

3 TOUS LES DÉS (Facultatif)

A. Fonction dé 1
● Écrire la fonction de1(x,y,longueur) qui dessine le dé 1 en fonction des coordonnées de
départ (x,y) et de la longueur du dé.

Aide :
● La longueur du carré noir est longueur/5
● Le centre du carré est longueur/2
● Définir les coordonées du carré noir en fonction de x,y et longueur

B. Fonctions pour chaque dé


● Faire de même pour les autres dés : de2(x,y,longueur), de3(x,y,longueur)...

● Enfin, afficher l’ensemble des dés.

SNT Programmation : TP6 page 4/2


# Dé à 5 faces
from turtle import*
def carre(L):
for i in range(4):
left(90)
forward(L)

def dé(x,y):
up()
goto(x,y)
down()
begin_fill()
carre(20)
end_fill()

up()
goto(50,-50)
down()
carre(100)

dé(10,-10)
dé(40,-40)
dé(40,20)
dé(-20,-40)
dé(-20,20)

# Dé à 6 faces

from turtle import*


def carre(L):
for i in range(4):
left(90)
forward(L)

def dé(x,y):
up()
goto(x,y)
down()
begin_fill()
carre(20)
end_fill()

up()
goto(50,-50)
down()
carre(100)

dé(40,-10)
dé(-20,-10)
dé(40,-40)
dé(40,20)
dé(-20,-40)
dé(-20,20)

from turtle import*

SNT Programmation : TP6 page 5/2


def carre(L):
for i in range(4):
left(90)
forward(L)

# Dé à 4 faces

from turtle import*


def carre(L):
for i in range(4):
left(90)
forward(L)

def dé(x,y):
up()
goto(x,y)
down()
begin_fill()
carre(20)
end_fill()

up()
goto(50,-50)
down()
carre(100)

dé(40,-40)
dé(40,20)
dé(-20,-40)
dé(-20,20)

# Dé à 2 faces

from turtle import*


def carre(L):
for i in range(4):
left(90)
forward(L)

def dé(x,y):
up()
goto(x,y)
down()
begin_fill()
carre(20)
end_fill()

up()
goto(50,-50)
down()
carre(100)

dé(40,-40)

SNT Programmation : TP6 page 6/2


dé(-20,20)

# Dé à une face

from turtle import*


def carre(L):
for i in range(4):
left(90)
forward(L)

def dé(x,y):
up()
goto(x,y)
down()
begin_fill()
carre(20)
end_fill()

up()
goto(50,-50)
down()
carre(100)

dé(10,-10)

SNT Programmation : TP6 page 7/2

Vous aimerez peut-être aussi