Commit 49d11e8c authored by Le noob du 53's avatar Le noob du 53

mise à jour

parent 4f5ab9d7
...@@ -11,11 +11,11 @@ import java.util.ArrayList; ...@@ -11,11 +11,11 @@ import java.util.ArrayList;
/** /**
* *
* @author senda * @author senda
*/
public class AlgoRecherMinMax1 extends AlgoRecherche { public class AlgoRecherMinMax1 extends AlgoRecherche {
ArrayList ListCoup; ArrayList ListCoup;
public AlgoRecherMinMax1() { /*public AlgoRecherMinMax1() {
} }
...@@ -26,4 +26,12 @@ public class AlgoRecherMinMax1 extends AlgoRecherche { ...@@ -26,4 +26,12 @@ public class AlgoRecherMinMax1 extends AlgoRecherche {
return ; return ;
} }
} }*/
/* L'idée c'est :
- Créer un arbre de coups :
On récupère les coups dispo
On fait toutes les possibilités d'enchaînement de coups (<N, <MaxCoupsRestants)
- On applique MinMax
- On rend le meilleur coup selon notre algorythme
*/
\ No newline at end of file
...@@ -12,19 +12,23 @@ import java.util.ArrayList; ...@@ -12,19 +12,23 @@ import java.util.ArrayList;
* @author senda * @author senda
*/ */
public class Arbre { public class Arbre {
public static int N = 5;
private Fraction value; protected Fraction value;
private ArrayList<Coup> coups; protected ArrayList<Coup> coups;
private ArrayList<Arbre> fils; protected ArrayList<Arbre> fils;
// Les constructeurs : // Les constructeurs :
public Arbre(){
}
public Arbre (Fraction value, ArrayList coups, ArrayList fils){ public Arbre (Fraction value, ArrayList coups, ArrayList fils){
this.value = value; this.value = value;
this.fils = fils; this.fils = fils;
this.coups = coups; this.coups = coups;
} }
public Arbre (int den, int num, ArrayList coups, ArrayList fils){ public Arbre (int num, int den, ArrayList coups, ArrayList fils){
this.value.den = den; this.value.den = den;
this.value.num = num; this.value.num = num;
this.fils = fils; this.fils = fils;
...@@ -47,7 +51,7 @@ public class Arbre { ...@@ -47,7 +51,7 @@ public class Arbre {
this.value = value; this.value = value;
} }
public Arbre (int den, int num){ public Arbre (int num, int den){
this.value.den = den; this.value.den = den;
this.value.num = num; this.value.num = num;
} }
...@@ -57,14 +61,18 @@ public class Arbre { ...@@ -57,14 +61,18 @@ public class Arbre {
return(value.getNote()); return(value.getNote());
} }
public ArrayList getfils(){ public ArrayList<Arbre> getfils(){
return(fils); return(fils);
} }
public ArrayList getcoups(){ public ArrayList getcoups(){
return(coups); return(coups);
} }
public Fraction getFrac(){
return(this.value);
}
//Des choses sans nom : //Des choses sans nom :
public void setvalue(Fraction value){ public void setvalue(Fraction value){
this.value = value; this.value = value;
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
package tictactoecodingame; package tictactoecodingame;
import java.util.ArrayList; import java.util.ArrayList;
import static tictactoecodingame.Generator.random_tests;
/** /**
* *
...@@ -123,7 +124,7 @@ public class ArbreMinMax { ...@@ -123,7 +124,7 @@ public class ArbreMinMax {
return m; return m;
} }
public void MinMax(int h){ public void MinMax(int h,Plateau plateau, int nb_tests){
// h = hauteur, on l'incrémente comme un compteur // 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 // 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 // La racine est un Max, donc impair -> Max, pair -> Min
...@@ -141,11 +142,11 @@ public class ArbreMinMax { ...@@ -141,11 +142,11 @@ public class ArbreMinMax {
} }
int a = this.getfils().size(); int a = this.getfils().size();
for(int i = 0; i < a ; i++){ for(int i = 0; i < a ; i++){
this.getfils().get(i).MinMax(h + 1); this.getfils().get(i).MinMax(h + 1,plateau,nb_tests);
} }
} }
else{//On a h > N, on utilise la fonction d'évaluation 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