IA_TP_LAWSON-LARTEGO/TPIA/jeu_nim/exo2.py
2024-10-23 21:37:10 +02:00

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)