Commit 55c310b4 authored by Julien POUILLART's avatar Julien POUILLART
Browse files

Suite règles témeraires

parent d592e1b2
......@@ -96,29 +96,25 @@ public class Plateau {
}
public void colorierCasesBrave(Case c, Couleur couleur){
public void colorierCasesBrave(Case c, Joueur player){
Case[] voisinage = this.voisins(c);
colorierCase(c, couleur);
colorierCase(c, player.couleur);
for (Case x : voisinage){
if (x.caseColoriee()){
colorierCase(x, couleur);
colorierCase(x, player.couleur);
}
}
}
public void colorierCasesTemeraire(Case c, Couleur couleur){
public void colorierCasesTemeraire(Case c, Joueur player){
Case[] voisinage = this.voisins(c);
colorierCase(c, couleur);
colorierCase(c, player.couleur);
int check = 0;
PetiteRegion pregion = new PetiteRegion(this.matrice[c.ligne - c.ligne][c.colonne - c.colonne],
this.matrice[c.ligne + (2 - c.ligne)][c.colonne + (2 - c.colonne)],
this.matrice);
//En gros : on veut récuperer la petite région correspondant à c
QuadtreeNode node = this.arbrePlateau.recherchePetiteRegion(c.ligne, c.colonne);
PetiteRegion pregion = (PetiteRegion) node.getRegion();
Case[] reg = pregion.getCases();
......@@ -129,18 +125,28 @@ public class Plateau {
}
if (check == 9){ // si toute la petite région est colorée
for (Case alpha : reg){
colorierCase(alpha, couleur);
colorierCase(alpha, player.couleur);
}
pregion.setAcquise(true);
}
for (Case x : voisinage){
if (x.caseColoriee() && !(x.estAcquise())){
colorierCase(x, couleur);
colorierCase(x, player.couleur);
}
}
if (pregion.estAcquise()) {
ReglesQuatreEtCinq(node, player);
}
}
private void ReglesQuatreEtCinq(QuadtreeNode reg, Joueur player) {
QuadtreeNode regsup = reg.getRegionSuperieure();
}
public void colorierCase(Case c, Couleur couleur) {
......
......@@ -27,6 +27,11 @@ public class Quadtree {
}
}
public QuadtreeNode recherchePetiteRegion(int i, int j) {
return this.root.recherchePetiteRegion(i, j);
}
public QuadtreeNode getRoot() {
// TODO Auto-generated method stub
......
......@@ -63,10 +63,38 @@ public class QuadtreeNode {
return null;
}
private Region rechercheRegion(Region regionRecherchee) {
//TODO : recherche d'une region du plateau dans le quadtree
return null;
public QuadtreeNode recherchePetiteRegion(int iCaseRecherchee, int jCaseRecherchee) {
//TODO : recherche d'une case du plateau dans le quadtree
if(this.estFeuille()) {
return this;
} else {
if(!(v1==null)){
if(v1.region.contient(iCaseRecherchee,jCaseRecherchee)) {
return v1.recherchePetiteRegion(iCaseRecherchee,jCaseRecherchee);
}
}
if(!(v2==null)){
if(v2.region.contient(iCaseRecherchee,jCaseRecherchee)) {
return v2.recherchePetiteRegion(iCaseRecherchee,jCaseRecherchee);
}
}
if(!(v3==null)){
if(v3.region.contient(iCaseRecherchee,jCaseRecherchee)) {
return v3.recherchePetiteRegion(iCaseRecherchee,jCaseRecherchee);
}
}
if(!(v4==null)){
if(v4.region.contient(iCaseRecherchee,jCaseRecherchee)) {
return v4.recherchePetiteRegion(iCaseRecherchee,jCaseRecherchee);
}
}
}
//code supposedly unreachable
return null;
}
public void initialiserDepuisMatrice(Case[][] cases, int longueur, int iBasGauche, int jBasGauche) {
......
......@@ -6,6 +6,7 @@ public class Region {
private Case basGauche;
private boolean acquise;
private boolean coloriee;
public int getLongueur(){
return (this.getBasGauche().colonne - this.getHautDroite().colonne + 1);// rajout de +1 car entre la région entre les colonnes 1 et 3 est de longueur 3, mais 3-1 = 2
......@@ -28,7 +29,7 @@ public class Region {
public boolean estAcquise() {
// TODO Auto-generated method stub
return false;
return acquise;
}
public Case getBasGauche() {
......@@ -49,10 +50,6 @@ public class Region {
&& jCaseRecherchee <= this.hautDroite.ligne);
}
public boolean isAcquise() {
return this.acquise;
}
public void setAcquise(boolean acquise) {
this.acquise = acquise;
}
......@@ -60,5 +57,14 @@ public class Region {
public void acquerir() {
this.acquise = true;
}
public boolean estColoriee() {
return coloriee;
}
public void setColoriee(boolean coloriee) {
this.coloriee = coloriee;
}
}
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