Commit 6a75475b authored by theray1's avatar theray1
Browse files

implementation de qques méthodes + ajout d'une matrice pour le plateau

parent b961791c
package project;
public class Bot extends Joueur{
public Bot(Couleur couleur, Partie partie) {
super(couleur, partie);
// TODO Auto-generated constructor stub
}
public void JouerIATemeraire() {
}
......
......@@ -3,7 +3,7 @@ package project;
public class Brave implements Regle{
@Override
public void jouerCase(Case caseBlanche, Joueur joueur, Plateau plateau) {
public void jouerCase(Case caseBlanche, Joueur joueur, Partie partie) {
// TODO Auto-generated method stub
}
......
package project;
public enum Couleur {
ROUGE,
BLEU
}
......@@ -2,16 +2,18 @@ package project;
public class Joueur {
Partie partie;
Couleur couleur;
public Joueur() {
public Joueur(Couleur couleur, Partie partie) {
this.partie = partie;
this.couleur = couleur;
}
public void JouerGloutonBrave() {
public void JouerGloutonBrave(Case caseJouee) {
partie.jouer(this, 0, caseJouee);
}
public void JouerGloutonTemeraire() {
public void JouerGloutonTemeraire(Case caseJouee) {
partie.jouer(this, 1, caseJouee);
}
}
......@@ -7,6 +7,5 @@ import javax.swing.SwingUtilities;
public class Main {
public static void main(String[] args) {
System.out.println("test");
Window window = new Window("bite");
}
}
......@@ -5,14 +5,14 @@ public class Partie {
Joueur joueur1;
Joueur joueur2;
Regle règle;
int tailePlateau;
int taillePlateau;
public int getTailePlateau() {
return tailePlateau;
public int getTaillePlateau() {
return taillePlateau;
}
public void setTailePlateau(int tailePlateau) {
this.tailePlateau = tailePlateau;
this.taillePlateau = tailePlateau;
}
public Plateau getPlateau() {
......@@ -54,6 +54,22 @@ public class Partie {
this.règle = règle;
}
public void jouer(Joueur joueur, int regleId, Case caseJouee) {
switch(regleId){
case 0:
System.out.println("Brave");
//jouer brave
break;
case 1:
System.out.println("Temeraire");
//jouer temeraire
break;
}
}
public void demarrerPartie() {
//TODO : implementer
}
......
package project;
public class PetiteRegion extends Region{
private Case[] cases;
//6 7 8
//3 4 5
//0 1 2
public Case[] getCases() {
return cases;
}
public void setCases(Case[] cases) {
this.cases = cases;
}
public PetiteRegion(Case basGauche, Case hautDroite) {
super(basGauche, hautDroite);
// TODO Auto-generated constructor stub
}
}
......@@ -4,13 +4,16 @@ public class Plateau {
//attributs
private int longueur;
private QuadtreeNode arbrePlateau;
private Quadtree arbrePlateau;
private Case[][] matrice;
//constructeur : un plateau non subdivisé
public Plateau (int longueur){
this.longueur = longueur;
Quadtree arbPla = new Quadtree();
matrice = new Case[longueur][];
this.initalisationQuadtree();
}
public void RemplirRegion() {
......@@ -31,6 +34,11 @@ public class Plateau {
return 0;
}
public void initalisationQuadtree() {
Case[][] cases = new Case[longueur][];
}
public Case[] voisins(){
/*Case[] lambda = null;
int x = 0;
......@@ -53,14 +61,14 @@ public class Plateau {
/*public void colorierCasesBrave(Case c){
Case[] voisinage = c.voisins();
public void colorierCasesBrave(Case c){
/*Case[] voisinage = c.voisins();
//TODO : colorier c
for (Case x : voisinage){
if (x.caseColoriee()){
//TODO : colorier x
}
}
}*/
}*/
}
}
......@@ -8,7 +8,7 @@ public class Quadtree {
}
public Quadtree(int longueur) {
this.root.initalisationPRQuadtree(longueur, 0, 0);
//this.root.initalisationQuadtree(longueur, 0, 0);
}
......@@ -28,4 +28,19 @@ public class Quadtree {
return root;
}
private Case rechercheCase(Case caseRecherchee) {
//TODO : recherche d'une case du plateau dans le quadtree
if(this.estVide()) {
return this.root.rechercheCase(caseRecherchee);
} else {
return null;
}
}
public QuadtreeNode getRoot() {
// TODO Auto-generated method stub
return this.root;
}
}
package project;
public class QuadtreeNode {
private QuadtreeNode v1, v2, v3, v4;
private QuadtreeNode v1, v2, v3, v4; //représentaiton des sous régions sens horaire
private Region region;
public QuadtreeNode() {
......@@ -21,10 +21,42 @@ public class QuadtreeNode {
}
private Case rechercheCase(Case caseRecherchee) {
public Case rechercheCase(Case caseRecherchee) {
//TODO : recherche d'une case du plateau dans le quadtree
return null;
if(this.estFeuille()) {
if (this.region.contient(caseRecherchee)) {
PetiteRegion pregion = (PetiteRegion) this.region;
Case[] cases = pregion.getCases();
int indice = 3*(caseRecherchee.ligne-pregion.getBasGauche().ligne) + caseRecherchee.colonne-pregion.getBasGauche().colonne;
return cases[indice];
}
} else {
if(!(v1==null)){
if(v1.region.contient(caseRecherchee)) {
return v1.rechercheCase(caseRecherchee);
}
}
if(!(v2==null)){
if(v2.region.contient(caseRecherchee)) {
return v2.rechercheCase(caseRecherchee);
}
}
if(!(v3==null)){
if(v3.region.contient(caseRecherchee)) {
return v3.rechercheCase(caseRecherchee);
}
}
if(!(v4==null)){
if(v4.region.contient(caseRecherchee)) {
return v4.rechercheCase(caseRecherchee);
}
}
}
//code supposedly unreachable
return caseRecherchee;
}
private Region rechercheRegion(Region regionRecherchee) {
......@@ -32,8 +64,5 @@ public class QuadtreeNode {
return null;
}
public void initalisationPRQuadtree(int longueur, int ibg, int jbg) {
//TODO : initialisation d'un arbre
}
}
......@@ -31,5 +31,13 @@ public class Region {
return null;
}
public boolean contient(Case caseRecherchee) {
// TODO Auto-generated method stub
return (caseRecherchee.colonne >= this.basGauche.colonne
&& caseRecherchee.colonne <= this.hautDroite.colonne
&& caseRecherchee.ligne >= this.basGauche.ligne
&& caseRecherchee.ligne <= this.hautDroite.ligne);
}
}
package project;
public interface Regle {
public void jouerCase(Case caseBlanche, Joueur joueur, Plateau plateau);
public void jouerCase(Case caseBlanche, Joueur joueur, Partie partie);
}
......@@ -3,7 +3,7 @@ package project;
public class Temeraire implements Regle{
@Override
public void jouerCase(Case caseBlanche, Joueur joueur, Plateau plateau) {
public void jouerCase(Case caseBlanche, Joueur joueur, Partie Partie) {
// TODO Auto-generated method stub
}
......
package project;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Window extends JFrame{
public Window(String title) {
super(title);
buildContentPane();
}
private void buildContentPane(){
JPanel jeu = new JPanel();
jeu.setPreferredSize(new Dimension(1220, 1080));
this.getContentPane().add(jeu);
this.setVisible(true);
this.pack();
this.setLocationRelativeTo(null);
}
}
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