public class MiniMax { /* Variable donnant le nombre d'allumettes au départ du jeu */ public static int depart = 5; public static void main(String[] args) { System.out.println(Nim(depart)); } /* Fonction de démarrage du jeu, donner un nombre d'allumettes de démarrage */ public static int Nim(int n){ return exploreMax(n); } /* Vérifie les issues des coups jouables par le J1 et renvoie 1 si le J1 a une opportunité de gagner a coup sur */ public static int exploreMax(int allumette) { for (int i=0;allumette>1&&i<3;i++){ allumette--; int v=exploreMin(allumette); if (v==1){ return v; } } return -1; } /* Vérifie les issues possibles des coups du J2 et renvoie -1 si le J2 a une opportunité de gagner a coup sur */ public static int exploreMin(int allumette){ for (int i=0;allumette>1&&i<3;i++){ allumette--; int v=exploreMax(allumette); if (v==-1){ return v; } } return 1; } }