public class MiniMax_versionarret_compteur { public static int compteur_noeud = 0; private static int ExploreMax(int nbr_allumettes){ compteur_noeud++; if (nbr_allumettes <= 0){ return 1; } int meilleurres = -2; for (int coup = 1; coup <= 3; coup++){ int res = ExploreMin(nbr_allumettes - coup); if (res > meilleurres){ meilleurres = res; if (meilleurres == 1){ break; } } } return meilleurres; } private static int ExploreMin(int nbr_allumettes){ compteur_noeud++; if (nbr_allumettes <= 0){ return -1; } int pire = 2; for (int coup = 1; coup <= 3; coup++){ int res = ExploreMax(nbr_allumettes - coup); if (res < pire){ pire = res; if (pire == -1){ break; } } } return pire; } public static void main(String[] args) { int nbr_allumettes = 19; System.out.println(ExploreMax(nbr_allumettes)); System.out.println(compteur_noeud); } }