TP8 - Fonctions ¶
On commence par importer les bibliothèques turtle et random.
from turtle import *
import random
L'objectif de ce TP est d'écrire une fonction lancer2des(f) qui :
- simule le lancé de deux dés
- représente les faces obtenues
- affiche le score du lancer, calculé avec une fonction f qui dépend du jeu auquel on joue

Pour cela, nous allons découper ce problème en sous-problèmes plus simples à résoudre.
La fonction carre(c, a, b) permet de représenter un carré de côté c et de sommet "inférieur gauche" (a ; b).
# definition de carre(c, a, b)
def carre(c, a, b):
up()
goto(a,b)
down()
for i in range(4):
forward(c)
left(90)
La fonction point(r, x, y) permet de représenter un point de rayon r et de centre (x ; y).
# definition de point(r, x, y)
def point(r, x, y):
up()
goto(x,y)
down()
dot(r)
Ecrire et tester la fonction face(c, a, b, resultat) qui représente la face obtenue, de côté c et de sommet "inférieur gauche" (a;b).
# definition de face(c, a, b, resultat)
# test de face(c, a, b, resultat)
face(100, 0, 0, 3)
exitonclick()
TurtleScreen._RUNNING = True
Ecrire la fonction score_lancer(de1, de2) qui retourne le score calculé de la manière suivante :
- 5 s'il s'agit d'un double 1, 2, 4 ou 5
- 25 s'il s'agit d'un double 6
- 0 sinon
Ce score sera utilisé dans le jeu des 30 points que l'on développera dans le TP9.
Contrairement à toutes les fonctions définies jusqu'à présent, celle-ci doit retourner un résulat lorsqu'elle est appelée.
On utilise pour cela le mot-clé return, à la fin de la définition, suivi en général de la variable contenant le résulat.
# définition de score_lancer(de1, de2)
def score_lancer(de1, de2):
# compléter en affectant la variable "resultat" qui sera renvoyée à l'appel de la fonction
return resultat
Ecrire la fonction lancer2des(f)
# définition de lancer2des(f)
# test de lancer2des(f) avec f = score_lancer
lancer2des(score_lancer)
exitonclick()
TurtleScreen._RUNNING = True
On peut évidemment utiliser une autre fonction pour calculer le score correspondant à notre lancer.
Par exemple, la somme des faces.
# définition et test de la fonction somme(de1, de2)
# test de lancer2des(f) avec f = somme
lancer2des(somme)
exitonclick()
TurtleScreen._RUNNING = True
Ou encore le produit des faces.
# définition et test de la fonction produit(de1, de2)
# test de lancer2des(f) avec f = produit
lancer2des(produit)
exitonclick()
TurtleScreen._RUNNING = True