Chifumi
Énoncé
Question 1
Écrivez un programme qui permet à son utilisateur de jouer à Chifumi (aussi appelé "Pierre, feuille, ciseaux" et dont les règles sont rappelées sur Wikipedia) à l'infini contre une intelligence artificielle qui joue aléatoirement (pas si intelligente que ça donc).
Pour la boucle infinie nous utiliserons while True
.
Vous ferez bien attention à ce que votre programme soit robuste face des entrées utilisateur invalides.
Question 2
Les nombres aléatoires sont générés à partir d'une constante, la graine.
Par défaut, cette graine change à chaque nouvelle exécution du programme, simulant ainsi un comportement aléatoire.
Il est possible de définir la même graine pour toutes les exécutions d'un programme en appelant la fonction random.seed()
.
À l'aide de la fonction random.seed
, modifiez votre programme Chifumi pour être certain de toujours gagner les X
premiers coups du jeu, avec X
dépendant de votre capacité mémoire à vous, utilisateur humain.
Autrement dit, faîtes en sorte que l'ordinateur joue la même séquence de coups à chaque exécution du programme.
Si le rôle de la fonction seed
vous paraît un peu mystérieux, étudiez attentivement le petit exemple ci-dessous :
On lance l'interpréteur Python une première fois pour afficher trois nombres aléatoires sans utiliser seed
:
1 2 3 4 5 6 7 8 |
|
ctrl-d
) puis on refait le même test :
1 2 3 4 5 6 7 8 |
|
On refait la même manipulation en utilisant cette fois-ci la fonction seed
(en lui passant en paramètre une valeur quelconque) :
1 2 3 4 5 6 7 8 9 |
|
ctrl-d
) puis on refait le même test (en gardant la même graine, c'est à dire la même valeur passée en paramètre de seed
):
1 2 3 4 5 6 7 8 9 |
|
Correction question 2
Cliquez ici pour révéler la correction.
chifumi.py
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|