TP8 - Fonctions
¶

A. Ridard

On commence par importer les bibliothèques turtle et random.

In [ ]:
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
No description has been provided for this image

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).

In [ ]:
# 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).

In [ ]:
# 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).

In [ ]:
# definition de face(c, a, b, resultat)
In [ ]:
# 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.

In [ ]:
# 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)

In [ ]:
# définition de lancer2des(f) 
In [ ]:
# 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.

In [ ]:
# définition et test de la fonction somme(de1, de2)
In [ ]:
# test de lancer2des(f) avec f = somme

lancer2des(somme)

exitonclick()
TurtleScreen._RUNNING = True

Ou encore le produit des faces.

In [ ]:
# définition et test de la fonction produit(de1, de2)
In [ ]:
# test de lancer2des(f) avec f = produit

lancer2des(produit)

exitonclick()
TurtleScreen._RUNNING = True