diff --git a/src/carte/CarteLieu.java b/src/carte/CarteLieu.java index 1d4d2fe..28be58e 100644 --- a/src/carte/CarteLieu.java +++ b/src/carte/CarteLieu.java @@ -1,22 +1,49 @@ package carte; +import java.awt.Point; +import java.util.ArrayList; import java.util.List; + import main.Joueur; -import main.Pioche; -import main.Type; -import main.TypeLumiere; -public class CarteLieu extends CarteEffet{ - - private Pioche piocheLumiere; - private List listeJoueur; +public class CarteLieu extends CarteEffet{ + private List listeJoueurs; + private Point coordinates; + private CarteLieu voisin; + public CarteLieu(Point coordinates) { + this.listeJoueurs = new ArrayList(); + this.coordinates = coordinates; + } + public void utiliser(Joueur j) { - - CartePiochable carte = piocheLumiere.piocher(); - carte.utiliser(j); + + this.getEffet().utiliser(j); } + public boolean coordinatesContains(int i) + { + return coordinates.x == i || coordinates.y == i; + } + + public List getJoueurs() { + return listeJoueurs; + } + + public List getJoueursAdjacents() { + return voisin.getJoueurs(); + } + + public void remove(Joueur joueur) { + + if(this.listeJoueurs.contains(joueur)) + { + this.listeJoueurs.remove(joueur); + } + } + + + } diff --git a/src/carte/CarteLieuType.java b/src/carte/CarteLieuType.java index 9bfd88e..35b0851 100644 --- a/src/carte/CarteLieuType.java +++ b/src/carte/CarteLieuType.java @@ -1,11 +1,26 @@ package carte; -import main.Joueur; +import java.awt.Point; -public class CarteLieuType extends CarteLieu{ +import main.Joueur; +import main.Pioche; +import main.Type; + +public class CarteLieuType extends CarteLieu{ - public void utiliser(Joueur j) { - super.utiliser(j); + private Pioche pioche; + + + public CarteLieuType(Point coordinates,Pioche pioche) { + super(coordinates); + this.pioche = pioche; } + public void utiliser(Joueur j) { + + CartePiochable carte = pioche.piocher(); + carte.utiliser(j); + } + + } diff --git a/src/main/CarteLieu.java b/src/main/CarteLieu.java deleted file mode 100644 index 5b0cbf5..0000000 --- a/src/main/CarteLieu.java +++ /dev/null @@ -1,41 +0,0 @@ -package main; -import java.util.List; - -public class CarteLieu { - private List valeurs; - private List joueurs; - private String nom; - private CarteLieu voisin; - private Plateau plateau; - - public CarteLieu(String n, List vals, CarteLieu vois, Plateau plat){ - nom = n; - for(int i : vals) { - //max 2 v par lieu normalement - valeurs.add(i); - } - voisin = vois; - plateau = plat; - } - - //pour rajouter un joueur au lieu - public void addJoueur(Joueur j) { - joueurs.add(j); - } - - public List getJoueursAdjacents() { - return voisin.getJoueurs(); - } - - public void utiliser(Joueur j) {}; - - public List getJoueurs() { - return joueurs; - } - - //pour enlever un joueur du lieu - public void removeJoueur(Joueur j) { - joueurs.remove(j); //pas sur que ca va marcher - } - -} diff --git a/src/main/ControleurIA.java b/src/main/ControleurIA.java index d5739d7..c62e2d9 100644 --- a/src/main/ControleurIA.java +++ b/src/main/ControleurIA.java @@ -2,6 +2,7 @@ package main; import java.util.ArrayList; import java.util.List; +import carte.CarteLieu; import main.Joueur.Equipe; public class ControleurIA { @@ -102,7 +103,7 @@ public class ControleurIA { List joueursProx = cl.getJoueurs(); if (getEnnemisJoueurs(jIA, joueursProx).size() > 0) return false; - List joueursAdj = cl.getJoueursAdjacents(); + List joueursAdj = jIA.getJoueursAdjacents(); if (getEnnemisJoueurs(jIA, joueursAdj).size() > 0) return true; return false; diff --git a/src/main/Joueur.java b/src/main/Joueur.java index e7bb962..e710d9f 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -3,6 +3,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import carte.CarteLieu; import effet.Effet; import personnage.CartePersonnage; @@ -165,4 +166,24 @@ public class Joueur { this.plateau = plateau2; } + public boolean choisir() { + // TODO Auto-generated method stub + return false; + } + + public void utiliserEffetLieu() { + this.carteLieu.utiliser(this); + } + + public void deplacer(CarteLieu cl) { + + if(this.carteLieu != null) + { + this.carteLieu.remove(this); + } + + this.carteLieu = cl; + + } + } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index afb04ae..cc42cea 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -5,7 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import carte.Carte; +import carte.CarteLieu; public class Plateau { private List joueurs; @@ -43,19 +43,42 @@ public class Plateau { } - public int rollDices() { - //pas necessaire? - return 0; - } - - public void piocher(Joueur joueur, Type type) { - - } - - public void déplacerJoueur(Joueur joueur, int indexLieu) { + public void jeu() { + int nbJoueurs = this.joueurs.size(); + int i = 0; + while(true) { + + Joueur currentJoueur = this.joueurs.get(nbJoueurs % i); + deplacer(currentJoueur); + + if(currentJoueur.choisir()) { + currentJoueur.utiliserEffetLieu(); + } + + if(currentJoueur.choisir()){ + Joueur cible = currentJoueur.choisirAdjacents(); + attaquer(currentJoueur,cible); + } + + i++; + } } + private void deplacer(Joueur currentJoueur) { + + int roll = sumRolls(); + + for(CarteLieu cl : lieux) { + if(cl.coordinatesContains(roll)){ + + currentJoueur.deplacer(cl); + break; + } + } + } + + public void attaquer(Joueur joueur1, Joueur joueur2) { int attaque = diffRolls(); @@ -79,18 +102,15 @@ public class Plateau { return (int) Math.floor(Math.random() * 3)+1; } - public int rollDices4() { - return Math.abs(roll4() - roll4()); - } - - public int rollDices6() { - return roll6() + roll6(); - } - public int roll6() { return (int) Math.floor(Math.random() * 5)+1; } + public int sumRolls() + { + return roll6() + roll4(); + } + public List getJoueurs() { return this.joueurs; }