Ajout méthode jeu, deplacer, attaquer

This commit is contained in:
Paul Gross 2020-04-21 13:45:45 +02:00
parent 0f8a283e31
commit 9d298ba9c1
6 changed files with 118 additions and 75 deletions

View File

@ -1,22 +1,49 @@
package carte; package carte;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import main.Joueur; import main.Joueur;
import main.Pioche;
import main.Type;
import main.TypeLumiere;
public class CarteLieu<T extends Type> extends CarteEffet{ public class CarteLieu extends CarteEffet{
private Pioche<T> piocheLumiere; private List<Joueur> listeJoueurs;
private List<Joueur> listeJoueur; private Point coordinates;
private CarteLieu voisin;
public CarteLieu(Point coordinates) {
this.listeJoueurs = new ArrayList<Joueur>();
this.coordinates = coordinates;
}
public void utiliser(Joueur j) { public void utiliser(Joueur j) {
CartePiochable<?> carte = piocheLumiere.piocher(); this.getEffet().utiliser(j);
carte.utiliser(j);
} }
public boolean coordinatesContains(int i)
{
return coordinates.x == i || coordinates.y == i;
}
public List<Joueur> getJoueurs() {
return listeJoueurs;
}
public List<Joueur> getJoueursAdjacents() {
return voisin.getJoueurs();
}
public void remove(Joueur joueur) {
if(this.listeJoueurs.contains(joueur))
{
this.listeJoueurs.remove(joueur);
}
}
} }

View File

@ -1,11 +1,26 @@
package carte; 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<T extends Type> extends CarteLieu{
private Pioche<T> pioche;
public CarteLieuType(Point coordinates,Pioche<T> pioche) {
super(coordinates);
this.pioche = pioche;
}
public void utiliser(Joueur j) { public void utiliser(Joueur j) {
super.utiliser(j);
CartePiochable<?> carte = pioche.piocher();
carte.utiliser(j);
} }
} }

View File

@ -1,41 +0,0 @@
package main;
import java.util.List;
public class CarteLieu {
private List<Integer> valeurs;
private List<Joueur> joueurs;
private String nom;
private CarteLieu voisin;
private Plateau plateau;
public CarteLieu(String n, List<Integer> 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<Joueur> getJoueursAdjacents() {
return voisin.getJoueurs();
}
public void utiliser(Joueur j) {};
public List<Joueur> getJoueurs() {
return joueurs;
}
//pour enlever un joueur du lieu
public void removeJoueur(Joueur j) {
joueurs.remove(j); //pas sur que ca va marcher
}
}

View File

@ -2,6 +2,7 @@ package main;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import carte.CarteLieu;
import main.Joueur.Equipe; import main.Joueur.Equipe;
public class ControleurIA { public class ControleurIA {
@ -102,7 +103,7 @@ public class ControleurIA {
List<Joueur> joueursProx = cl.getJoueurs(); List<Joueur> joueursProx = cl.getJoueurs();
if (getEnnemisJoueurs(jIA, joueursProx).size() > 0) if (getEnnemisJoueurs(jIA, joueursProx).size() > 0)
return false; return false;
List<Joueur> joueursAdj = cl.getJoueursAdjacents(); List<Joueur> joueursAdj = jIA.getJoueursAdjacents();
if (getEnnemisJoueurs(jIA, joueursAdj).size() > 0) if (getEnnemisJoueurs(jIA, joueursAdj).size() > 0)
return true; return true;
return false; return false;

View File

@ -3,6 +3,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import carte.CarteLieu;
import effet.Effet; import effet.Effet;
import personnage.CartePersonnage; import personnage.CartePersonnage;
@ -165,4 +166,24 @@ public class Joueur {
this.plateau = plateau2; 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;
}
} }

View File

@ -5,7 +5,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import carte.Carte; import carte.CarteLieu;
public class Plateau { public class Plateau {
private List<Joueur> joueurs; private List<Joueur> joueurs;
@ -43,18 +43,41 @@ public class Plateau {
} }
public int rollDices() { public void jeu() {
//pas necessaire? int nbJoueurs = this.joueurs.size();
return 0; int i = 0;
while(true) {
Joueur currentJoueur = this.joueurs.get(nbJoueurs % i);
deplacer(currentJoueur);
if(currentJoueur.choisir()) {
currentJoueur.utiliserEffetLieu();
} }
public void piocher(Joueur joueur, Type type) { if(currentJoueur.choisir()){
Joueur cible = currentJoueur.choisirAdjacents();
attaquer(currentJoueur,cible);
} }
public void déplacerJoueur(Joueur joueur, int indexLieu) { 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) { public void attaquer(Joueur joueur1, Joueur joueur2) {
@ -79,18 +102,15 @@ public class Plateau {
return (int) Math.floor(Math.random() * 3)+1; 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() { public int roll6() {
return (int) Math.floor(Math.random() * 5)+1; return (int) Math.floor(Math.random() * 5)+1;
} }
public int sumRolls()
{
return roll6() + roll4();
}
public List<Joueur> getJoueurs() { public List<Joueur> getJoueurs() {
return this.joueurs; return this.joueurs;
} }