53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
|
|
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)
|
|
|