TP8 - Boucle while ¶
# on importe les bibliothèques turtle et random
from turtle import *
import random
On aura besoin d'une version "réduite" de la fonction lancer2des() du TP7.
# fonctions du TP7
def carre(c, a, b):
up()
goto(a,b)
down()
for i in range(4):
forward(c)
left(90)
def point(r, x, y):
up()
goto(x,y)
down()
dot(r)
def face(c, a, b, resultat):
speed(0)
ht()
carre(c, a, b)
d = c/4
r = c/8
if resultat == 1 :
point(r, a+2*d, b+2*d)
if resultat == 2 :
point(r, a+1*d, b+3*d)
point(r, a+3*d, b+1*d)
if resultat == 3 :
point(r, a+1*d, b+3*d)
point(r, a+2*d, b+2*d)
point(r, a+3*d, b+1*d)
if resultat == 4 :
point(r, a+1*d, b+3*d)
point(r, a+1*d, b+1*d)
point(r, a+3*d, b+1*d)
point(r, a+3*d, b+3*d)
if resultat == 5 :
point(r, a+1*d, b+3*d)
point(r, a+1*d, b+1*d)
point(r, a+3*d, b+1*d)
point(r, a+3*d, b+3*d)
point(r, a+2*d, b+2*d)
if resultat == 6 :
point(r, a+1*d, b+3*d)
point(r, a+1*d, b+2*d)
point(r, a+1*d, b+1*d)
point(r, a+3*d, b+1*d)
point(r, a+3*d, b+2*d)
point(r, a+3*d, b+3*d)
def lancer2des():
res1 = random.randint(1,6)
face(100,0,0,res1)
res2 = random.randint(1,6)
face(100,120,0,res2)
# test de lancer2des()
lancer2des()
exitonclick()
TurtleScreen._RUNNING = True
Le jeu des 30 points¶
À tour de rôle, les joueurs lancent deux dés.
S’ils n’obtiennent aucun double, ils ne marquent pas de points.
En revanche, si leurs dés affichent des doubles, voici comment calculer leur score :
- Un double 1, 2, 4, 5 rapporte 5 points
- Un double 6 rapporte 25 points
- Un double 3 ramène leur score à 0
Le premier joueur à atteindre 30 points gagne la partie.
Modifier la fonction lancer2des() ci-dessus pour qu'elle affiche les deux dés ainsi que le score du lancer.
![]()
On pourra commencer par définir une fonction score_lancer(de1, de2) qui retourne le score du lancer selon la règle du jeu.
# def score_lancer(de1, de2)
# test
print(score_lancer(1,2))
print(score_lancer(2,2))
print(score_lancer(6,6))
print(score_lancer(3,3))
# def lancer2des()
# test
lancer2des()
exitonclick()
TurtleScreen._RUNNING = True
Vous pouvez mainenant jouer avec votre voisin, mais à chaque tour il faudra exécuter la fonction et compter les points...
Automatisation d'une partie avec la boucle while.¶
Jouer avec son voisin¶
Définir une fonction jeu30points() qui permet de jouer avec son voisin, simplement en cliquant sur la fenêtre graphique à chaque tour.
![]()
# def jeu30points()
# test
jeu30points()
Jouer avec la machine¶
Définir une fonction jeu30pointVSmachine() qui permet de jouer avec la machine, simplement en cliquant sur la fenêtre graphique.
![]()
# def jeu30pointsVSmachine()
# test
jeu30pointsVSmachine()