Back to project page LotR_Risk.
The source code is released under:
GNU General Public License
If you think the Android project LotR_Risk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package utils; /* w w w .ja v a 2s.co m*/ import java.util.ArrayList; import java.util.Random; import objects.Joueur; import objects.Region; import objects.Territoire; import objects.TypeTerritoire; /** * Classe regroupant les donnes et les mthodes servant utiliser la plateau <br> * <b> ATTENTION A LA CASSE ET AUX ACCENTS HEIN !! </b> * @author Swatosj */ public class LOTR_Data { private ArrayList<Region> mapRegion; public LOTR_Data() { this.mapRegion = new ArrayList<Region>(6); mapRegion.add(this.init_list_Territoire_Rohan()); mapRegion.add(this.init_list_Territoire_Arnor()); mapRegion.add(this.init_list_Territoire_Rhovanion()); mapRegion.add(this.init_list_Territoire_Eriador()); mapRegion.add(this.init_list_Territoire_Rhun()); mapRegion.add(this.init_list_Territoire_Foret_Noire()); } /** * Retourne <u>l'objet Region</u> associ au nom dfini par <b>nomRegion</b>, retourne <u>null</u> sinon. * @param str */ public Region getRegionByName(String nomRegion) { for (Region r : this.mapRegion) { if (r.getNom().equals(nomRegion)) { return r; } } return null; } /** * Gnre une ArrayList comprenant <b>nbTerritoire</b> en fonction du type de territoire <b>type</b><br> * La liste <b>listTerritoire</b> est mise jour en enlevant les territoires ajouts la liste de retour.<br> * (Un mme territoire ne peut pas tre dans <b>listTerritoire</b> et dans la <u>liste retourne</u>) * @param type * @param nbTerritoire */ public ArrayList<Territoire> generateRandomTerritoiresFromType(TypeTerritoire type, int nbTerritoire, ArrayList<Territoire> listTerritoire) { ArrayList<Territoire> toReturn = new ArrayList<Territoire>(); ArrayList<Territoire> listTerritoireType = getListTerritoireAvecType(type); int tailleListe = listTerritoireType.size(); Territoire territoireCourant; if (nbTerritoire > listTerritoireType.size()) { return null; } Random random = new Random(); int chiffreRandom; boolean trouve; for (int i = 0; i < nbTerritoire; i++) { trouve = false; while (!trouve) { chiffreRandom = random.nextInt(tailleListe); territoireCourant = listTerritoireType.get(chiffreRandom); if (!toReturn.contains(territoireCourant) && listTerritoire.contains(territoireCourant)) //Evite les redondances { toReturn.add(territoireCourant); listTerritoire.remove(territoireCourant); trouve = true; } } } return toReturn; } /** * Retourne la liste des regions controles par le joueur <b>j</b>. * @param j */ public ArrayList<Region> getRegionsJoueur(Joueur j) { ArrayList<Region> toReturn = new ArrayList<Region>(); for (Region r : this.mapRegion) { if (playerHasRegion(j, r.getNom())) { toReturn.add(r); } } return toReturn; } /** * Retourne <b>true</b> si le joueur <b>j</b> poss?de la r?gion de nom <b>nomRegion</b>. * @param j * @param nomRegion */ public boolean playerHasRegion(Joueur j, String nomRegion) { Region r = getRegionByName(nomRegion); if (r != null) { for (Territoire t : r.getListTerritoire()) { if (!j.getListTerritoire().contains(t)) return false; } } else return false; return true; } /** * Retourne le <u>nombre de renforts</u> disponibles du joueur <b>j</b> en fonction de la liste des territoires qu'il poss?de. * @param j */ public int calculer_Renforts(Joueur j) { if (j.getNB_Territoire() < 12) return 3; int renforts = j.getNB_Territoire() / 3; for (Region r : this.mapRegion) { if (this.playerHasRegion(j, r.getNom())) renforts += r.getNB_Renforts(); } return renforts; } /** * Retourne la liste de tout les territoires possedant le type dfini par <b>type</b>. * @param type */ public ArrayList<Territoire> getListTerritoireAvecType(TypeTerritoire type) { ArrayList<Territoire> toReturn = new ArrayList<Territoire>(); for (Region r : this.mapRegion) { for (Territoire t : r.getListTerritoire()) { if (t.getType_Territoire() == type) { toReturn.add(t); } } } return toReturn; } /** * Retourne une ArrayList de tout les territoires du jeu. * @param type */ public ArrayList<Territoire> getAllTerritoires() { ArrayList<Territoire> toReturn = new ArrayList<Territoire>(); for (Region r : this.mapRegion) { for (Territoire t : r.getListTerritoire()) toReturn.add(t); } return toReturn; } private Region init_list_Territoire_Rohan() { Region r = new Region("Rohan", 4); r.add_Territoire(new Territoire("Pays des Vieux Biscornus", true, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Troue du Rohan", false, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Fangorn", true, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Enedwaith", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Miniriath", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Pays de Dun", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Eregion", false, TypeTerritoire.NEUTRE)); return r; } private Region init_list_Territoire_Rhovanion() { Region r = new Region("Rhovanion", 5); r.add_Territoire(new Territoire("Marais des Morts", false, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Le Plateau", false, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Terres Brunes", false, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Collines de Rhn", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Lorien", false, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Emyn Muil", false, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Moria", true, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Champs aux Iris", false, TypeTerritoire.NEUTRE)); return r; } private Region init_list_Territoire_Eriador() { Region r = new Region("Eriador", 3); r.add_Territoire(new Territoire("Collines des Tours", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("La Comt", false, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Les Collines d'Evendim", true, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Harlindon", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Forlindon", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Montagnes Bleues", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Mithlond", false, TypeTerritoire.NEUTRE)); return r; } private Region init_list_Territoire_Arnor() { Region r = new Region("Arnor", 7); r.add_Territoire(new Territoire("Pays de Bouc", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Vieille Fort", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Rhudaur", true, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Fornost", false, TypeTerritoire.BIEN)); r.add_Territoire(new Territoire("Hauts du Nord", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Hauts du Sud", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Collines du Temps", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Landes d'Etten", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Angmar", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Est d'Angmar", false, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Forodwaith", false, TypeTerritoire.NEUTRE)); return r; } private Region init_list_Territoire_Foret_Noire() { Region r = new Region("Fort Noire", 4); r.add_Territoire(new Territoire("Carrock", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Valle de l'Anduin", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Sud de la Fort Noire", true, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Est de la Fort Noire", false, TypeTerritoire.MAL)); r.add_Territoire(new Territoire("Nord de la Fort Noire", false, TypeTerritoire.BIEN)); return r; } private Region init_list_Territoire_Rhun() { Region r = new Region("Rhn", 2); r.add_Territoire(new Territoire("Esgaroth", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Rhn du Sud", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Rhn du Nord", false, TypeTerritoire.NEUTRE)); r.add_Territoire(new Territoire("Landes Dessche", false, TypeTerritoire.MAL)); return r; } }