# Jeu de Nim deuxième version : 08.01.2026 # Valider les choix des joueurs (seuls les choix 1, 2 ou 3 sont valides) JOUEUR_1 = "j1" JOUEUR_2 = "j2" ALLUMETTES_DEPART = 20 nb_prises = 0 nb_restantes = ALLUMETTES_DEPART #Boucle principale du jeu (un tour : joueur 1 puis joueur 2) while (nb_restantes > 0): # Tant qu'il reste des allumettes: jouer # TRAITEMENTS POUR LE JOUEUR 1 # Indication du jeu : séparateur, le nombre d'allumettes restantes print("----------------------") print(f"Il reste {nb_restantes} allumettes.") # Demander au joueur 1 le nombre d'allumettes qu'il souhaite prendre nb_prises = int(input(f"{JOUEUR_1} combien d'allumettes (1, 2 ou 3) ? ")) # Valide la saisie de l'utilisateur (valide uiquement avec 1, 2 ou 3) while (nb_prises <= 0 or nb_prises > 3): nb_prises = int(input(f"! {JOUEUR_1} vous devez prendre 1, 2 ou 3 allumettes et pas {nb_prises}. Réessayez : ")) # Enlever les allumettes prises par le joueur 1 nb_restantes = nb_restantes - nb_prises # Tester s'il reste des allumettes : si non joueur 1 a gagné # Remarque : utiliser <= plutôt que == if (nb_restantes <= 0): # Il ne reste plus d'allumette print(f"BRAVO {JOUEUR_1} tu as gagné !") # Arrêter la boucle (il existe d'autres solutions pour arrêter la boucle) break # TRAITEMENTS POUR LE JOUEUR 2 # Indication du jeu : séparateur, le nombre d'allumettes restantes print("----------------------") print(f"Il reste {nb_restantes} allumettes.") # Demander au joueur 2 le nombre d'allumettes qu'il souhaite rendre nb_prises = int(input(f"{JOUEUR_2} combien d'allumettes (1, 2 ou 3) ? ")) # Valide la saisie de l'utilisateur (valide uiquement avec 1, 2 ou 3) while (nb_prises <= 0 or nb_prises > 3): nb_prises = int(input(f"! {JOUEUR_2} vous devez prendre 1, 2 ou 3 allumettes et pas {nb_prises}. Réessayez : ")) # Enlever les allumettes prises par le joueur 2 nb_restantes = nb_restantes - nb_prises # Tester s'il reste des allumettes : si non joueur 2 a gagné # Remarque : utiliser <= plutôt que == if (nb_restantes <= 0): # Il ne reste plus d'allumette print(f"BRAVO {JOUEUR_2} tu as gagné !") # Arrêter la boucle (il existe d'autres solutions pour arrêter la boucle) break # Indiquer la fin du jeu print("----------------------") print(f"Le jeu est terminé, merci d'avoir joué avec nous.")