Aller au contenu

Le jeu à deux⚓︎

Exercice 1

Puisque l'utilisateur peut essayer de tricher, en prenant trop d'allumettes, ou pas assez, il faut pouvoir tester sa réponse et lui redemander si nécessaire. Pour cela, on va utiliser la fontion demander_joueur qui prend en paramètre un entier nb_allumettes qui correspond au nombre d'allumettes qu'il reste.

Le code de la fonction à compléter
def demander_joueur(nb_allumettes):
    print("Il reste", nb_allumettes, "allumette(s)")
    choix = 0
    while choix < 1 ... choix > 3 ... choix > nb_allumettes:
        choix = int(input("Combien d'allumettes voulez-vous ? "))
    return choix
Exemple d'utilisation
>>> demander_joueur(13)
Il reste 13 allumette(s)
Combien d'allumettes voulez-vous ? 0
Combien d'allumettes voulez-vous ? 15
Combien d'allumettes voulez-vous ? 3
3

Répondre aux questions de l'exercice 1 sur la feuille puis compléter le code de la fonction demander_joueur dans votre fichier.

Testez votre fonction !!!

Puisque vous ne pouvez pas valider votre fonction automatiquement, il faut bien la tester dans Thonny.

Il faut que vous essayez les différents cas possibles. Vous pouvez par exemple tester les différentes situations présentées dans le tableau sur la feuille.

Si votre fonction ne donne pas le résultat attendu dans certains cas, cela peut vous bloquer dans les exercices suivants et rendre la recherche des bugs bien plus compliquée.

Exercice 2

Répondre aux questions sur la feuille puis compléter la fonction manche qui prend en paramètre un entier nb_allumettes et qui permet de jouer une manche avec nb_allumettes au départ.

Le changement de joueur se fait au début du tour de boucle. Si le joueur 2 vient de jouer, c'est alors au tour du joueur 1 et réciproquement. C'est pourquoi on initialise joueur avec 2. Au premier tour de boucle, le changmeent se fait et le joueur 1 commence la manche.

Cela permet de garantir qu'à la fin de la manche joueur correspond au joueur ayant gagné.

Le code à compléter
def manche(nb_allumettes):
    joueur = 2
    while ...:
        if joueur == 1:  # (1)!
            joueur = ...
        else:
            joueur = ...
        print("Au tour du joueur", joueur)
        choix = demander_joueur(nb_allumettes)
        nb_allumettes = ...
    print("Le joueur", joueur, "a gagné.")
    # return joueur (2)
  1. Changement de joueur.
  2. Cette ligne servira plus tard.
Exemple d'utilisation
>>> manche(7)
Au tour du joueur 1
Il reste 7 allumette(s)
Combien d'allumettes voulez-vous ? 2
Au tour du joueur 2
Il reste 5 allumette(s)
Combien d'allumettes voulez-vous ? 3
Au tour du joueur 1
Il reste 2 allumette(s)
Combien d'allumettes voulez-vous ? 2
Le joueur 1 a gagné.