commit
This commit is contained in:
parent
66d5c0e51c
commit
2230b9cd64
52
MiniMax.java
Normal file
52
MiniMax.java
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user