Commit 354446df authored by HERSEMEULE Bruce's avatar HERSEMEULE Bruce

Merge branch 'Bruce' into 'master'

Mise à jour de arbre MinMax

See merge request !7
parents 49d11e8c 5f1491d8
......@@ -14,7 +14,6 @@ import static tictactoecodingame.Generator.random_tests;
*/
public class ArbreMinMax {
public static int N = 5;
protected int value;
protected ArrayList<Coup> coups;
protected ArrayList<ArbreMinMax> fils;
......@@ -54,8 +53,13 @@ public class ArbreMinMax {
}
public ArrayList<ArbreMinMax> getfils(){
if(fils != null){
return(fils);
}
else{
return null;
}
}
public ArrayList getcoups(){
return(coups);
......@@ -124,29 +128,27 @@ public class ArbreMinMax {
return m;
}
public void MinMax(int h,Plateau plateau, int nb_tests){
// h = hauteur, on l'incrémente comme un compteur
// N est la profondeur à explorer en MinMax, toutes les feuilles en N+1 sont évaluées
// La racine est un Max, donc impair -> Max, pair -> Min
if(N >= h){ // On doit chosir entre min et max
if(h%2 == 0){
public void MinMax(int c){
// c = compteur
// Le compteur doit être initialisé à 0 donc pair -> Max, impair -> Min
if(this.getfils() != null){
int a = this.getfils().size();
for(int i = 0; i < a ; i++){
this.getfils().get(i).MinMax(c+1);
}
}
if(c%2 == 0){
//On attribue le Min
int m = this.Min();
this.setvalue(m);
}
else{
//On attribue le max
int m = this.Max();
this.setvalue(m);
}
int a = this.getfils().size();
for(int i = 0; i < a ; i++){
this.getfils().get(i).MinMax(h + 1,plateau,nb_tests);
}
}
else{//On a h > N, on utilise la fonction d'évaluation
int i = random_tests(plateau,nb_tests);
}
}
}
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