public Terrain(string nom, double prix, double baseLoyer, Couleur couleur) : base(nom) { this.prix = prix; this.baseLoyer = baseLoyer; this.loyer = baseLoyer; this.couleur = couleur; }
public bool PossedeGroupeCouleur(Joueur j, Couleur c) { foreach (Terrain t in groupesTerrains[c]) { if (!t.PossedeePar(j)) { return(false); } } return(true); }
public Cases() { marron = new Couleur("Marron", 100, 100, 2); bleuCiel = new Couleur("Bleu ciel", 100, 100, 3); rose = new Couleur("Rose", 100, 100, 3); orange = new Couleur("Orange", 100, 100, 3); rouge = new Couleur("Rouge", 100, 100, 3); jaune = new Couleur("Jaune", 100, 100, 3); vert = new Couleur("Vert", 100, 100, 3); bleu = new Couleur("Bleu", 100, 100, 2); this.Add(new Depart("Départ", 2000)); this.Add(new Terrain("Canal Rideau", 150, 150, marron)); this.Add(new Communaute("Caisse de communauté")); this.Add(new Terrain("Coline du Parlement", 150, 150, marron)); this.Add(new Impot("Impôt sur le revenu", 200)); this.Add(new Aeroport("Aéroport de Montréal")); this.Add(new Terrain("Lac Louise", 150, 150, bleuCiel)); this.Add(new Chance("Chance")); this.Add(new Terrain("Fleuve Mackenvie", 150, 150, bleuCiel)); this.Add(new Terrain("Lac Athabasca", 150, 150, bleuCiel)); this.Add(new Case("Visite en Prison")); this.Add(new Terrain("Rocher Percé", 150, 150, rose)); this.Add(new Compagnie("Compagnie de distribution d'électricité")); this.Add(new Terrain("Miles Canyon", 150, 150, rose)); this.Add(new Terrain("Champ de glace Columbia", 150, 150, rose)); this.Add(new Aeroport("Aéroport de Toronto")); this.Add(new Terrain("Colline Signal", 150, 150, orange)); this.Add(new Communaute("Caisse de communauté")); this.Add(new Terrain("Peggy's Cove", 150, 150, orange)); this.Add(new Terrain("Tunnel de Moose Jaw", 150, 150, orange)); this.Add(new Case("Parc gratuit")); this.Add(new Terrain("Pont de la Confédération", 150, 150, rouge)); this.Add(new Chance("Chance")); this.Add(new Terrain("Île de Baffin", 150, 150, rouge)); this.Add(new Terrain("Baie de Fundy", 150, 150, rouge)); this.Add(new Aeroport("Aéroport d'Halifax")); this.Add(new Terrain("Parc provincial Algonouin", 150, 150, jaune)); this.Add(new Terrain("Parc national Wapusk", 150, 150, jaune)); this.Add(new Compagnie("Compagnie de distribution des eaux")); this.Add(new Terrain("Whistler", 150, 150, jaune)); this.Add(new Prison("Prison")); this.Add(new Terrain("Rue Robson", 150, 150, vert)); this.Add(new Terrain("Rue Sainte-Catherine", 150, 150, vert)); this.Add(new Communaute("Caisse de communauté")); this.Add(new Terrain("Portage et Memorial", 150, 150, vert)); this.Add(new Aeroport("Aéroport de Vancouver")); this.Add(new Chance("Chance")); this.Add(new Terrain("Chutes Niagara", 150, 150, bleu)); this.Add(new Impot("Taxe de luxe", 100)); this.Add(new Terrain("Fairmont Le Château Frontenac", 150, 150, bleu)); }
/// <summary> /// Vérifie les autres terrains de couleur pour voir s'il sont tous possédé par j /// </summary> /// <param name="_couleur"></param> /// <param name="_j"></param> /// <param name="_terrainActuel"></param> internal bool VerifAutreTerrainPossedeGroupe(Couleur _couleur, Joueur _j, Terrain _terrainActuel) { bool result = true; foreach (var _terrain in groupesTerrains[_couleur]) { if (_terrain.proprietaire != _j && _terrain != _terrainActuel) { result = false; } } return(result); }
/// <summary> /// Renvoie une liste de couleur contenant les couleurs dans lesquelles j peut construire des maisons. /// </summary> /// <param name="j"></param> private List <Couleur> GetCouleursConstructible(Joueur j) { List <Couleur> _couleurConstructibles = new List <Couleur>(); foreach (KeyValuePair <Couleur, List <Terrain> > _colorAndTerrain in groupesTerrains) { //Console.WriteLine($"clé : {_colorAndTerrain.Key} ... valeur : {_colorAndTerrain.Value[0]}"); Couleur _couleur = _colorAndTerrain.Key; //Console.WriteLine($"Vous pouvez construire sur des terrains des couleurs suivantes :"); if (typeof(EtatConstructible).IsInstanceOfType(_colorAndTerrain.Value[0].etat) && _colorAndTerrain.Value[0].proprietaire == j) { _couleurConstructibles.Add(_couleur); } } return(_couleurConstructibles); }
public Terrain(string _nom, uint _prixDepart, uint _loyer, Couleur _couleur, Plateau _plateau, uint _prixMaison, uint[] _loyerMaisons) { this.nom = _nom; this.prixDepart = _prixDepart; this.loyer = _loyer; this.couleur = _couleur; this.etat = new EtatAchetable(); //=========================== TEST //this.etat = new EtatConstructible(); //this.proprietaire = new Joueur(); //============================= maisonsConstruites = 0; this.plateau = _plateau; this.prixMaison = _prixMaison; this.loyerMaisons = _loyerMaisons; }
/// <summary> /// Vérifie que tous les terrains de la même couleur ont le même propriétaire. /// Passe les terrains à l'état constructible si c'est le cas. /// </summary> /// <param name="couleur"></param> public void SwitchConstructible(Couleur couleur) { bool toSwitch = true; Joueur proprio = null; //Verifie que les terrains sont achetes par le meme proprio foreach (var _terrain in groupesTerrains[couleur]) { if (!typeof(EtatAchete).IsInstanceOfType(_terrain.etat)) { toSwitch = false; } else { if (proprio == null) { proprio = _terrain.proprietaire; } else { if (proprio != _terrain.proprietaire) { toSwitch = false; } proprio = _terrain.proprietaire; } } } if (toSwitch) { foreach (var _terrain in groupesTerrains[couleur]) { _terrain.etat = new EtatConstructible(); //Console.WriteLine("SWITCHAROOOOOO"); } Console.WriteLine($"Les terrains de la couleur {couleur} deviennent constructible."); } }