From 13c4e43711666a398fc40c537ec64b2829f2b300 Mon Sep 17 00:00:00 2001 From: SimonSayeBabu Date: Thu, 12 Sep 2024 11:41:36 +0200 Subject: [PATCH] TP Nim --- README.md | 7 +++++++ nim.java | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 nim.java diff --git a/README.md b/README.md index e69de29..06db3e0 100644 --- a/README.md +++ b/README.md @@ -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. \ No newline at end of file diff --git a/nim.java b/nim.java new file mode 100644 index 0000000..b084cda --- /dev/null +++ b/nim.java @@ -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; + } + +} \ No newline at end of file