Commit 9da78a8c authored by TRAN Alain's avatar TRAN Alain

Replace AlgoRechercheMinMax.java

parent 38cb9e19
...@@ -16,8 +16,11 @@ import java.util.ArrayList; ...@@ -16,8 +16,11 @@ import java.util.ArrayList;
public class AlgoRechercheMinMax extends AlgoRecherche { public class AlgoRechercheMinMax extends AlgoRecherche {
Joueur humain; Joueur humain;
public AlgoRechercheMinMax(Joueur _joueur){ Joueur ordi;
humain = _joueur; public AlgoRechercheMinMax(Joueur _ordi1, Joueur _joueur1){
ordi = _ordi1;
humain = _joueur1;
} }
String[][] grille = {{"","",""},{"","",""},{"","",""}}; String[][] grille = {{"","",""},{"","",""},{"","",""}};
...@@ -28,13 +31,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche { ...@@ -28,13 +31,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
double inf = Double.POSITIVE_INFINITY; double inf = Double.POSITIVE_INFINITY;
double bestScore = -1 * inf; double bestScore = -1 * inf;
CoupTicTacToe meilleur_coup = null ; CoupTicTacToe meilleur_coup = null ;
ArrayList<Coup> coups = _plateau.getListeCoups(_joueur); ArrayList<Coup> coups = _plateau.getListeCoups(ordi);
for (int i = 0; i < coups.size(); i++){ for (int i = 0; i < coups.size(); i++){
_plateau.joueCoup(coups.get(i)); _plateau.joueCoup(coups.get(i));
System.out.println(_plateau);
System.out.println("coup initial");
double score = minimax(_plateau,humain,0,false); //False car l'ordi a déjà placé son premier coup double score = minimax(_plateau,humain,0,false); //False car l'ordi a déjà placé son premier coup
Coup coup_provisoire = coups.get(i); Coup coup_provisoire = coups.get(i);
_plateau.annuleDernierCoup(); _plateau.annuleDernierCoup();
System.out.println("annule coup initial");
System.out.println(_plateau);
if (score > bestScore){ if (score > bestScore){
bestScore = score; bestScore = score;
meilleur_coup = (CoupTicTacToe)coup_provisoire; meilleur_coup = (CoupTicTacToe)coup_provisoire;
...@@ -59,11 +66,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche { ...@@ -59,11 +66,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
if (isMaximizing) { //ordi qui joue if (isMaximizing) { //ordi qui joue
double inf = Double.POSITIVE_INFINITY; double inf = Double.POSITIVE_INFINITY;
double bestScore = -1 * inf; double bestScore = -1 * inf;
ArrayList<Coup> coups = _plateau.getListeCoups(_joueur); ArrayList<Coup> coups = _plateau.getListeCoups(ordi);
for (int i = 0; i < coups.size(); i++){ for (int i = 0; i < coups.size(); i++){
_plateau.joueCoup(coups.get(i)); _plateau.joueCoup(coups.get(i));
System.out.println(_plateau);
System.out.println("coup ordi");
double score = minimax(_plateau,humain,profondeur + 1,false); double score = minimax(_plateau,humain,profondeur + 1,false);
System.out.println("dernier coup " + _plateau.getDernierCoup());
_plateau.annuleDernierCoup(); _plateau.annuleDernierCoup();
System.out.println(_plateau);
System.out.println("coup ordi annulé");
System.out.println("dernier coup " + _plateau.getDernierCoup());
bestScore = max(score,bestScore); bestScore = max(score,bestScore);
} }
return bestScore; return bestScore;
...@@ -74,8 +87,14 @@ public class AlgoRechercheMinMax extends AlgoRecherche { ...@@ -74,8 +87,14 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
ArrayList<Coup> coups = _plateau.getListeCoups(humain); ArrayList<Coup> coups = _plateau.getListeCoups(humain);
for (int i = 0; i < coups.size(); i++){ for (int i = 0; i < coups.size(); i++){
_plateau.joueCoup(coups.get(i)); // problème : Il faut que ce soit l'autre joueur qui joue ici _plateau.joueCoup(coups.get(i)); // problème : Il faut que ce soit l'autre joueur qui joue ici
double score = minimax(_plateau,_joueur,profondeur + 1,true); System.out.println(_plateau);
System.out.println("coup humain");
double score = minimax(_plateau,ordi,profondeur + 1,true);
System.out.println("dernier coup " + _plateau.getDernierCoup());
_plateau.annuleDernierCoup(); _plateau.annuleDernierCoup();
System.out.println(_plateau);
System.out.println("coup humain annulé");
System.out.println("dernier coup " + _plateau.getDernierCoup());
bestScore = min(score,bestScore); bestScore = min(score,bestScore);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment