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()