TP Nim
This commit is contained in:
parent
73ac20c142
commit
13c4e43711
@ -0,0 +1,7 @@
|
|||||||
|
###12/09/2024
|
||||||
|
Question 1 fait *(voir nim.java)*
|
||||||
|
Le joueur1 va faire un explore max de ces choix possible et lance exploreMin sur ces choix et ensuite exploreMax sur sont choix etc jusqua que l'un des joueur doit choisir 1 ce qui garantie la victoire/la perte de cette branche. Dans exploreMax, si il y a une possibilité de perdre dans une branche elle vaudra -1 si elle est obligatoirement victorieuse elle vaudra 1 et inversement pour exploreMin.
|
||||||
|
exploreMin represente le meilleur choix du joueur2 (qui est le pire choix pour joueur1 d'ou explore**MIN**).
|
||||||
|
|
||||||
|
Question 2 pas fait
|
||||||
|
Stocker tous les états possibles.
|
38
nim.java
Normal file
38
nim.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
public class nim {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(exploreMax(5));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine si le joueur gagne ou perd grace a exploreMin.
|
||||||
|
* @param allumette le nombre d'allumette au tour du joueur
|
||||||
|
* @return -1 si perdant ou 1 si gagnant
|
||||||
|
*/
|
||||||
|
public static int exploreMax(int allumette) {
|
||||||
|
for (int i=0;allumette>1&&i<3;i++){ //si il y a plus d'une allumette
|
||||||
|
allumette--;
|
||||||
|
int v=exploreMin(allumette);
|
||||||
|
if (v==1){
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine si le joueur gagne ou perd grace a exploreMax.
|
||||||
|
* @param allumette le nombre d'allumette au tour du joueur
|
||||||
|
* @return -1 si gagnant ou 1 si perdant
|
||||||
|
*/
|
||||||
|
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