This commit is contained in:
Jean-Luc NELET 2024-10-23 19:06:31 +02:00
parent 8a9bb79119
commit 5e54410555

10
app.py
View File

@ -96,7 +96,7 @@ def calculer_xor(etat_jeu):
xor_total ^= tas
return xor_total
# Stratégie gagnante pour l'IA
# Stratégie gagnante pour l'IA (corrigée)
def strategie_gagnante(etat_jeu):
xor_total = calculer_xor(etat_jeu)
@ -108,11 +108,15 @@ def strategie_gagnante(etat_jeu):
else:
# Stratégie gagnante : trouver le tas à modifier
for i, tas in enumerate(etat_jeu):
# Calculer ce qu'il reste si on change ce tas pour atteindre un XOR de 0
target = tas ^ xor_total
if target < tas:
return appliquer_mouvement(etat_jeu, i, tas - target), i + 1, tas - target
nb_a_retirer = tas - target
if nb_a_retirer > 0 and nb_a_retirer <= 3: # Vérifier qu'on retire entre 1 et 3 objets
return appliquer_mouvement(etat_jeu, i, nb_a_retirer), i + 1, nb_a_retirer
return None, None, None # Aucun mouvement possible
# Si aucun mouvement n'est possible (ce qui ne devrait jamais arriver), renvoyer None
return None, None, None
# Fonction pour sauvegarder l'historique dans un fichier CSV, format sur une seule ligne
def sauvegarder_historique(date_partie, vainqueur, historique, fichier="historique_parties.csv"):