예제 #1
0
 public Terrain(string nom, double prix, double baseLoyer, Couleur couleur) : base(nom)
 {
     this.prix      = prix;
     this.baseLoyer = baseLoyer;
     this.loyer     = baseLoyer;
     this.couleur   = couleur;
 }
예제 #2
0
 public bool PossedeGroupeCouleur(Joueur j, Couleur c)
 {
     foreach (Terrain t in groupesTerrains[c])
     {
         if (!t.PossedeePar(j))
         {
             return(false);
         }
     }
     return(true);
 }
예제 #3
0
        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));
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        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;
        }
예제 #7
0
        /// <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.");
            }
        }