* Idée détaillée et Pseudo code de minimax pour le jeu de Nim
* variante qui détecte si j'ai déjà gagné et donc pas besoin de continuer la boucle pour voir d'autres coups.
* variante coupe à profondeur fixe, discussion d'évaluateur de position
* variante mémoïsation avec deux tableaux (cache des positions déja évaluées, un tableau par joueur).
Rappel de ce que nous avons vu avec détails historique et une premioère passe pour alpha beta avec les transparents du cours (dispo dans le répertoire le plus ancien).
### à faire en salle machine
* créer un git individuel BUT3Jeux partagé avec moi
* dans un sous répertoire TP1, coder minimax pour le jeu de Nim
* Prendre soin de garder plusieurs versions dans des fichiers distincts (version de base sans optimisation, puis avec).
* Ajouter un README.md dans TP1 détaillant ce que fait chaque version, si elle fonctionne correctement ou pas.
* tester votre code
* Reprendre votre code pour compter le nombre d'états visités dans chaque version
* Tester pour différents nombre d'allumettes 5, 7, 13, 19, 31...
Écrire un tableau avec le nombre d'états visités pour chaque variante plus ou moins avancées.
* lire API proposée sur le git (NB. attention prenez la dernière version svp).
* implanter les classes concrètes pour le jeu de Nim.
Pour tester votre code pour la partie moteur de jeu (tout sauf le joueur), vous pouvez réaliser un joueur qui joue :
* au hasard
* humain en ligne de commande
* minimax (en dernier)
Une fois que vous avez tous les composants, votre main doit mettre en oeuvre une classe concrète qui hérite de AbstractGame et assemble tous les éléments nécessaires.
Notez que vous pouvez tester ue vous utilisez correctement l'API en utilisant votre bot contre le moteur du jeu d'un autre étudiant. Vous devriez même pouvoir le faire en demandant juste les .class.
## sixième cours (jeudi 16/10/2025)
Le but est de mettre en oeuvre des jeux plus intéressants que le jeu de Nim, toujours en suivant l'API.
Vous devez constituer des groupes de 4 ou 5 étudiants.
Un groupe est identifié par le jeu qu'il devra coder.
Dans un second temps, on fera des bots le plus efficace possible (probablement un alpha beta avec cut-off plus fonction d'évaluation qui peut être faite à la main ou par MonteCarlo).
Les jeux sont forcément un jeu parmi les suivants.