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

Replace AlgoRechercheMinMax.java

parent 38cb9e19
......@@ -16,8 +16,11 @@ import java.util.ArrayList;
public class AlgoRechercheMinMax extends AlgoRecherche {
Joueur humain;
public AlgoRechercheMinMax(Joueur _joueur){
humain = _joueur;
Joueur ordi;
public AlgoRechercheMinMax(Joueur _ordi1, Joueur _joueur1){
ordi = _ordi1;
humain = _joueur1;
}
String[][] grille = {{"","",""},{"","",""},{"","",""}};
......@@ -28,13 +31,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
double inf = Double.POSITIVE_INFINITY;
double bestScore = -1 * inf;
CoupTicTacToe meilleur_coup = null ;
ArrayList<Coup> coups = _plateau.getListeCoups(_joueur);
ArrayList<Coup> coups = _plateau.getListeCoups(ordi);
for (int i = 0; i < coups.size(); 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
Coup coup_provisoire = coups.get(i);
_plateau.annuleDernierCoup();
System.out.println("annule coup initial");
System.out.println(_plateau);
if (score > bestScore){
bestScore = score;
meilleur_coup = (CoupTicTacToe)coup_provisoire;
......@@ -59,11 +66,17 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
if (isMaximizing) { //ordi qui joue
double inf = Double.POSITIVE_INFINITY;
double bestScore = -1 * inf;
ArrayList<Coup> coups = _plateau.getListeCoups(_joueur);
ArrayList<Coup> coups = _plateau.getListeCoups(ordi);
for (int i = 0; i < coups.size(); i++){
_plateau.joueCoup(coups.get(i));
System.out.println(_plateau);
System.out.println("coup ordi");
double score = minimax(_plateau,humain,profondeur + 1,false);
System.out.println("dernier coup " + _plateau.getDernierCoup());
_plateau.annuleDernierCoup();
System.out.println(_plateau);
System.out.println("coup ordi annulé");
System.out.println("dernier coup " + _plateau.getDernierCoup());
bestScore = max(score,bestScore);
}
return bestScore;
......@@ -74,8 +87,14 @@ public class AlgoRechercheMinMax extends AlgoRecherche {
ArrayList<Coup> coups = _plateau.getListeCoups(humain);
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
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();
System.out.println(_plateau);
System.out.println("coup humain annulé");
System.out.println("dernier coup " + _plateau.getDernierCoup());
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