ajout de la fonctionnalité d'écriture des scores et coups dans un fichier
This commit is contained in:
@@ -470,6 +470,72 @@
|
||||
" # Position avantageuse (gagnante)\n",
|
||||
" return sum(etat_jeu) # Heuristique standard"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Bonus"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# création d'un système de sauvegarde des parties jouées\n",
|
||||
"\n",
|
||||
"def sauvegarder_partie(historique):\n",
|
||||
" \"\"\"\n",
|
||||
" Sauvegarde l'historique de la partie dans un fichier.\n",
|
||||
" \n",
|
||||
" :param historique: Liste des coups effectués pendant la partie.\n",
|
||||
" :param fichier: Nom du fichier où sauvegarder l'historique.\n",
|
||||
" \"\"\"\n",
|
||||
" fichier = \"historique.txt\"\n",
|
||||
" with open(fichier, \"a\") as f:\n",
|
||||
" f.write(\"Nouvelle partie :\")\n",
|
||||
" for coup in historique:\n",
|
||||
" f.write(f\"{coup} \")\n",
|
||||
" f.write(\"\\n\")\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"# modification de la fonction jeu_nim pour sauvegarder l'historique des coups\n",
|
||||
"def jeu_nim(etat_initial):\n",
|
||||
" etat = etat_initial[:]\n",
|
||||
" historique = []\n",
|
||||
" while not est_etat_final(etat):\n",
|
||||
" afficher_etat(etat)\n",
|
||||
" try:\n",
|
||||
" pile = int(input(\"Entrez le numéro de la pile (1, 2, 3, ...): \")) - 1\n",
|
||||
" nb_objets = int(input(\"Entrez le nombre d'objets à retirer: \"))\n",
|
||||
" historique.append(f\"Joueur: Pile {pile + 1}, Objets retirés: {nb_objets}\")\n",
|
||||
" appliquer_mouvement(etat, pile, nb_objets)\n",
|
||||
" historique.append(f\"Player: {etat}\")\n",
|
||||
" afficher_etat(etat)\n",
|
||||
" except ValueError:\n",
|
||||
" print(\"Entrée invalide. Veuillez entrer des nombres entiers.\")\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" if est_etat_final(etat):\n",
|
||||
" print(\"\\nFélicitations ! Vous avez gagné !\")\n",
|
||||
" break\n",
|
||||
"\n",
|
||||
" # Tour de l'IA\n",
|
||||
" chemin_optimal = algorithme_a_star(etat)\n",
|
||||
" if chemin_optimal and len(chemin_optimal) > 1:\n",
|
||||
" etat_ia = chemin_optimal[1]\n",
|
||||
" historique.append(f\"IA: Pile {pile + 1}, Objets retirés: {nb_objets}\")\n",
|
||||
" print(\"\\nL'IA joue...\")\n",
|
||||
" etat = etat_ia\n",
|
||||
" historique.append(f\"AI: {etat}\")\n",
|
||||
"\n",
|
||||
" if est_etat_final(etat):\n",
|
||||
" print(\"\\n L'IA a gagné !\")\n",
|
||||
" break\n",
|
||||
" sauvegarder_partie(historique)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
Reference in New Issue
Block a user