def generer_mouvements(etat_jeu): mouvements = [] # Liste pour stocker les nouveaux états possibles for i, tas in enumerate(etat_jeu): # Vérifier si le tas a au moins un objet if tas > 0: # Retirer 1 à tas objets, générer un nouvel état for nb_objets in range(1, tas + 1): nouvel_etat = etat_jeu.copy() # Faire une copie de l'état actuel nouvel_etat[i] -= nb_objets # Retirer des objets de ce tas mouvements.append(nouvel_etat) # Ajouter le nouvel état à la liste return mouvements etat_jeu = [3, 4, 5] mouvements_possibles = generer_mouvements(etat_jeu) for mouvement in mouvements_possibles: print(mouvement) def afficher_mouvements(mouvements): print("Mouvements possibles :") for mouvement in mouvements: print(mouvement) # Vérification avec plusieurs configurations d'état de jeu etat_jeu1 = [3, 4, 5] etat_jeu2 = [1, 0, 2] etat_jeu3 = [0, 0, 1] etat_jeu4 = [2, 2, 2] print("Test avec l'état [3, 4, 5] :") mouvements1 = generer_mouvements(etat_jeu1) afficher_mouvements(mouvements1) print('-' * 30) print("Test avec l'état [1, 0, 2] :") mouvements2 = generer_mouvements(etat_jeu2) afficher_mouvements(mouvements2) print('-' * 30) print("Test avec l'état [0, 0, 1] :") mouvements3 = generer_mouvements(etat_jeu3) afficher_mouvements(mouvements3) print('-' * 30) print("Test avec l'état [2, 2, 2] :") mouvements4 = generer_mouvements(etat_jeu4) afficher_mouvements(mouvements4) print('-' * 30)