47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
|
def afficher_etat(etat_jeu):
|
||
|
"""Affiche l'état actuel du jeu."""
|
||
|
print("État actuel du jeu :")
|
||
|
for i, tas in enumerate(etat_jeu):
|
||
|
print(f"Tas {i + 1}: {tas} objets")
|
||
|
|
||
|
def appliquer_mouvement(etat_jeu, tas_index, nb_objets):
|
||
|
"""Applique un mouvement et modifie l'état du jeu."""
|
||
|
etat_jeu[tas_index] -= nb_objets
|
||
|
|
||
|
def mouvement_valide(etat_jeu, tas_index, nb_objets):
|
||
|
"""Vérifie si un mouvement est valide."""
|
||
|
return 0 <= tas_index < len(etat_jeu) and 1 <= nb_objets <= etat_jeu[tas_index]
|
||
|
|
||
|
def est_etat_final(etat_jeu):
|
||
|
"""Vérifie si tous les tas sont vides."""
|
||
|
return all(tas == 0 for tas in etat_jeu)
|
||
|
|
||
|
def boucle_de_jeu():
|
||
|
"""Boucle de jeu pour permettre à l'utilisateur de jouer."""
|
||
|
# Initialisation de l'état du jeu (par exemple, trois tas avec 3, 4 et 5 objets)
|
||
|
etat_jeu = [3, 4, 5]
|
||
|
|
||
|
# Boucle principale du jeu
|
||
|
while not est_etat_final(etat_jeu):
|
||
|
# Afficher l'état actuel du jeu
|
||
|
afficher_etat(etat_jeu)
|
||
|
|
||
|
# Demander à l'utilisateur quel tas et combien d'objets retirer
|
||
|
try:
|
||
|
tas_index = int(input("Choisissez un tas (1, 2, 3...): ")) - 1
|
||
|
nb_objets = int(input(f"Combien d'objets voulez-vous retirer du tas {tas_index + 1}? "))
|
||
|
|
||
|
# Vérifier si le mouvement est valide
|
||
|
if mouvement_valide(etat_jeu, tas_index, nb_objets):
|
||
|
appliquer_mouvement(etat_jeu, tas_index, nb_objets)
|
||
|
else:
|
||
|
print("Mouvement invalide ! Essayez à nouveau.")
|
||
|
except ValueError:
|
||
|
print("Entrée invalide. Veuillez entrer des nombres entiers.")
|
||
|
|
||
|
# Fin du jeu : si tous les tas sont vides
|
||
|
print("Félicitations ! Vous avez gagné !")
|
||
|
|
||
|
# Lancer la boucle de jeu
|
||
|
boucle_de_jeu()
|