Commit 82d9ee28 authored by DELBECQ Théo's avatar DELBECQ Théo

Merge branch 'master' into 'Theo'

Master

See merge request !10
parents 5464252f 9a4d46c0
......@@ -11,11 +11,11 @@ import java.util.ArrayList;
/**
*
* @author senda
*/
public class AlgoRecherMinMax1 extends AlgoRecherche {
ArrayList ListCoup;
public AlgoRecherMinMax1() {
/*public AlgoRecherMinMax1() {
}
......@@ -26,4 +26,12 @@ public class AlgoRecherMinMax1 extends AlgoRecherche {
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;
* @author senda
*/
public class Arbre {
private Fraction value;
private ArrayList<Coup> coups;
private ArrayList<Arbre> fils;
public static int N = 5;
protected Fraction value;
protected ArrayList<Coup> coups;
protected ArrayList<Arbre> fils;
// Les constructeurs :
public Arbre(){
}
public Arbre (Fraction value, ArrayList coups, ArrayList fils){
this.value = value;
this.fils = fils;
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.num = num;
this.fils = fils;
......@@ -47,7 +51,7 @@ public class Arbre {
this.value = value;
}
public Arbre (int den, int num){
public Arbre (int num, int den){
this.value.den = den;
this.value.num = num;
}
......@@ -57,7 +61,7 @@ public class Arbre {
return(value.getNote());
}
public ArrayList getfils(){
public ArrayList<Arbre> getfils(){
return(fils);
}
......@@ -65,6 +69,10 @@ public class Arbre {
return(coups);
}
public Fraction getFrac(){
return(this.value);
}
//Des choses sans nom :
public void setvalue(Fraction value){
this.value = value;
......
......@@ -6,6 +6,7 @@
package tictactoecodingame;
import java.util.ArrayList;
import static tictactoecodingame.Generator.random_tests;
/**
*
......@@ -13,7 +14,6 @@ import java.util.ArrayList;
*/
public class ArbreMinMax {
public static int N = 5;
protected int value;
//Coup théorique joué à ce noeud
protected Coup coup;
......@@ -59,8 +59,13 @@ public class ArbreMinMax {
}
public ArrayList<ArbreMinMax> getfils(){
if(fils != null){
return(fils);
}
else{
return null;
}
}
public Coup getcoup(){
return coup;
......@@ -133,29 +138,27 @@ public class ArbreMinMax {
return m;
}
public void MinMax(int h){
// 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);
}
}
else{//On a h > N, on utilise la fonction d'évaluation
}
}
}
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