diff --git a/nim.py b/nim.py index 515c05e..4054374 100644 --- a/nim.py +++ b/nim.py @@ -150,7 +150,7 @@ def jouer_contre_ia(): # Tour de l'utilisateur afficher_etat(etat_jeu) - tas_index = int(input("Sélectionnez le tas (index) : ")) + """tas_index = int(input("Sélectionnez le tas (index) : ")) nb_objets = int(input("Combien d'objets retirer ? ")) if nb_objets > etat_jeu[tas_index]: @@ -169,15 +169,15 @@ def jouer_contre_ia(): if est_etat_final(etat_jeu): print("Vous avez gagné !") enregistrer_resultat({"etat_jeu_initial": etat_jeu_initial, "gagnant": "utilisateur", "historique": historique_actions}) - return + return""" # Tour de l'IA - print("Tour de l'IA...") + print("Tour de l'IA 1...") etat_jeu = algorithme_a_star(etat_jeu)[1] # IA applique A* et choisit le meilleur mouvement # Simuler une action de l'IA (ici c'est un exemple, tu devras remplacer cela par un vrai mouvement) historique_actions.append({ - "joueur": "IA", + "joueur": "IA 1", "tas": 0, # Exemple de tas choisi par l'IA (à adapter) "objets_retires": 1, # Exemple d'objets retirés par l'IA (à adapter) "etat_apres": etat_jeu.copy() # Copier l'état après le mouvement @@ -186,8 +186,28 @@ def jouer_contre_ia(): afficher_etat(etat_jeu) if est_etat_final(etat_jeu): - print("L'IA a gagné !") - enregistrer_resultat({"etat_jeu_initial": etat_jeu_initial, "gagnant": "IA", "historique": historique_actions}) + print("L'IA 1 a gagné !") + enregistrer_resultat({"etat_jeu_initial": etat_jeu_initial, "gagnant": "IA 1", "historique": historique_actions}) + return + + + # Tour de l'IA + print("Tour de l'IA 2...") + etat_jeu = algorithme_a_star(etat_jeu)[1] # IA applique A* et choisit le meilleur mouvement + + # Simuler une action de l'IA (ici c'est un exemple, tu devras remplacer cela par un vrai mouvement) + historique_actions.append({ + "joueur": "IA 2", + "tas": 0, # Exemple de tas choisi par l'IA (à adapter) + "objets_retires": 1, # Exemple d'objets retirés par l'IA (à adapter) + "etat_apres": etat_jeu.copy() # Copier l'état après le mouvement + }) + + afficher_etat(etat_jeu) + + if est_etat_final(etat_jeu): + print("L'IA 2 a gagné !") + enregistrer_resultat({"etat_jeu_initial": etat_jeu_initial, "gagnant": "IA 2", "historique": historique_actions}) return diff --git a/resultats.json b/resultats.json index 1040c46..e8d2b8e 100644 --- a/resultats.json +++ b/resultats.json @@ -166,5 +166,895 @@ ] } ] + }, + { + "etat_jeu_initial": [ + 8, + 9, + 5 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 8, + 5, + 5 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 5, + 5 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 5 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 2, + 7, + 3 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 2, + 1, + 3 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 3 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 2, + 9, + 3 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 2, + 0, + 3 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 2, + 0, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 1, + 6, + 8 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 6, + 3 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 3 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 9, + 4, + 1 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 4, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 10, + 3, + 9 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 10, + 3, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 3, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 5, + 3, + 6 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 5, + 3, + 2 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 3, + 2 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 2 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 3, + 10, + 8 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 3, + 3, + 8 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 3, + 3, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 3, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 8, + 5, + 10 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 7, + 5, + 10 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 7, + 5, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 5, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 1, + 1, + 6 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 4, + 8, + 4 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 4, + 1, + 4 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 1, + 4 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 1, + 8, + 3 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 3 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 0, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 4, + 1, + 4 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 1, + 4 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 1, + 1, + 0 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 6, + 4, + 4 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 6, + 4, + 2 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 6, + 0, + 2 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 2 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 6, + 10, + 10 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 6, + 4, + 10 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 6, + 4, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 6, + 3, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 3, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 3, + 3, + 3 + ], + "gagnant": "IA 2", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 3, + 1, + 3 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 3 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 0 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] + }, + { + "etat_jeu_initial": [ + 2, + 7, + 7 + ], + "gagnant": "IA 1", + "historique": [ + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 2, + 7, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 2, + 1, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 1, + 1 + ] + }, + { + "joueur": "IA 2", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 1 + ] + }, + { + "joueur": "IA 1", + "tas": 0, + "objets_retires": 1, + "etat_apres": [ + 0, + 0, + 0 + ] + } + ] } ] \ No newline at end of file