package main; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import carte.CarteLieu; public class Plateau { private List joueurs; private List lieux; public static final String NB_HUNTERS = "nb_hunters"; public static final String NB_SHADOWS = "nb_shadows"; public static final String NB_NEUTRES = "nb_neutres"; public static final String NB_MORTS = "nb_morts"; public static final String NB_MORTS_NEUTRAL = "nb_morts_neutral"; public static final String NB_MORTS_HUNTER = "nb_morts_hunter"; public static final String NB_MORTS_SHADOW = "nb_morts_shadow"; public static final String PARTIE_FINIE = "partie_finie"; private Map stats; public Plateau(List joueurs) { this.joueurs = joueurs; this.lieux = new ArrayList<>(); this.stats = new HashMap<>(); // Initialisation plateau this.stats.put(NB_HUNTERS, 0); this.stats.put(NB_SHADOWS, 0); this.stats.put(NB_NEUTRES, 0); this.stats.put(NB_MORTS, 0); this.stats.put(NB_MORTS_NEUTRAL, 0); this.stats.put(NB_MORTS_HUNTER, 0); this.stats.put(NB_MORTS_SHADOW, 0); this.stats.put(PARTIE_FINIE, 0); } 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(); if(attaque != 0) { joueur1.attaquer(joueur2,attaque); } } public Joueur selectionnerJoueur() { return new Joueur("0"); } public int diffRolls() { return Math.abs(roll6()-roll4()); } public int roll4() { return (int) Math.floor(Math.random() * 3)+1; } public int roll6() { return (int) Math.floor(Math.random() * 5)+1; } public int sumRolls() { return roll6() + roll4(); } public List getJoueurs() { return this.joueurs; } public void setStat(String key, int valeur) { this.stats.put(key, valeur); } public int getStat(String key) { if(this.stats.containsKey(key)) { return this.stats.get(key); }else { //TODO Exception return -1; } } }