예제 #1
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        public void initOperation(Propriete AVendre, Joueur Vendeur, List <Joueur> joueursEnJeu, Controleur c)
        {
            c.SwitchVerrouFenetre();
            FormChoixAchatVente operation = new FormChoixAchatVente(Vendeur, joueursEnJeu, this, AVendre, c.listePropriete, c);

            operation.Show();
        }
예제 #2
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        public void initAchatMaison(Propriete constructible, Joueur acheteur, List <Joueur> joueursEnJeu, List <Propriete> listeProp, Controleur c)
        {
            switch (CheckAchatMaison(constructible, acheteur, listeProp))
            {
            default:
                MessageBox.Show("Aucune opération de construction est disponible en l'état.");
                c.SwitchVerrouFenetre();
                break;

            case 0:
                FormulaireAchat modalitesMaison = new FormulaireAchat(0, this, acheteur, constructible, c);
                modalitesMaison.Show();
                break;

            case 1:
                FormulaireAchat modalitesHotel = new FormulaireAchat(1, this, acheteur, constructible, c);
                modalitesHotel.Show();
                break;
            }
        }
예제 #3
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        public void VendPropriete(FormulaireVente form, Propriete AVendre, Joueur Vendeur)
        {
            Joueur acheteur = form.GetAcheteur();

            if (AVendre.Numero == 5 || AVendre.Numero == 15 || AVendre.Numero == 25 || AVendre.Numero == 35)
            {
                acheteur.nbrDonjons++;
                Vendeur.nbrDonjons--;
            }

            AVendre.Proprietaire = acheteur;
            Vendeur.Patrimoine.Remove(AVendre);
            acheteur.Patrimoine.Add(AVendre);

            foreach (Case ca in control.listeCases)
            {
                if (ca.Num == AVendre.Numero)
                {
                    AVendre.afficheAppartenanceCase(acheteur, ca);
                }
            }
        }
예제 #4
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        public int NbrMaisonAchetable(Joueur proprietaire, Propriete aComparer, List <Propriete> listeProp)
        {
            int nombreMin = 999;

            foreach (Propriete prop in listeProp)
            {
                if (prop.Couleur == aComparer.Couleur)
                {
                    if (prop.Hotel != true && prop.NbrMaison < nombreMin)
                    {
                        nombreMin = prop.NbrMaison;
                    }
                }
            }
            if (aComparer.NbrMaison <= nombreMin)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }
예제 #5
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        /// <summary>
        /// Vérifie la disponibilité de la construction d'hôtel ou de maisons
        /// </summary>
        /// <param name="constructible">Terrain sur lequel on souhaite construire</param>
        /// <param name="proprietaire">Propriétaire du terrain</param>
        /// <param name="listePropriete">Liste des propriétés du plateau</param>
        /// <returns></returns>
        private int CheckAchatMaison(Propriete constructible, Joueur proprietaire, List <Propriete> listePropriete)
        {
            bool hotel = true;
            bool maison = true;
            int  couleurTotal = 0, couleur = 0;

            foreach (Propriete prop in listePropriete)
            {
                //Vérifie si tout les terrain sont possédé (si couleur == couleurTotal)
                if (prop.Couleur == constructible.Couleur)
                {
                    couleurTotal++;
                }
                if (prop.Couleur == constructible.Couleur && prop.Proprietaire == proprietaire)
                {
                    couleur++;
                }

                if (prop.Couleur == constructible.Couleur && constructible.NbrMaison != 4 && (prop.NbrMaison != 4 || !prop.Hotel))
                {
                    hotel = false;
                }
                if (prop.Couleur == constructible.Couleur && constructible.NbrMaison > prop.NbrMaison)
                {
                    maison = false;
                }
            }

            if (couleur != couleurTotal)
            {
                hotel  = false;
                maison = false;
            }

            if (constructible.Hotel == true)
            {
                hotel = false;
            }

            if (nbrHotel == 0)
            {
                hotel = false;
            }

            if (nbrMaison == 0)
            {
                maison = false;
            }

            if (hotel)
            {
                return(1);
            }
            else if (maison)
            {
                return(0);
            }
            else
            {
                return(-1);
            }
        }
예제 #6
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
        /// <summary>
        /// Vend la propriétée d'un joueur spécifié à un autre joueur
        /// </summary>
        /// <param name="AVendre">Propriété à vendre</param>
        /// <param name="Vendeur">Joueur vendeur</param>
        /// <param name="Acheteur">Joueur aquereur</param>
        /// <param name="Prix"></param>
        public void initVendPropriete(Propriete AVendre, Joueur Vendeur, List <Joueur> joueursEnJeu, Controleur c)
        {
            FormulaireVente modalites = new FormulaireVente(Vendeur, joueursEnJeu, this, AVendre, c);

            modalites.Show();
        }
예제 #7
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
 /// <summary>
 /// Lève une hypothèque sur la case hypothèquée d'un joueur
 /// </summary>
 /// <param name="joueur">>Joueur a qui appartient la propriétée</param>
 /// <param name="propriete">Case hypothèquée</param>
 void LeverHypotheque(Joueur joueur, Propriete propriete)
 {
     //PerdsArgent(joueur, (propriete.Prix[4] * 1.1)); //mise à jour du solde du joueur qui lève hypothèque la case
     //propriete.EstHypotheque = false;    //déverrouillage de la case hypothèquée
 }
예제 #8
0
파일: Banque.cs 프로젝트: Keonys/Monopoly
 /// <summary>
 /// Met une hypothèque sur la case d'un joueur
 /// </summary>
 /// <param name="joueur">Joueur a qui appartient la propriétée</param>
 /// <param name="propriete">Case hypothèquée</param>
 void Hypotheque(Joueur joueur, Propriete propriete)
 {
     //GagneArgent(joueur, propriete.Prix[4]); //mise à jour du solde du joueur qui hypothèque la case
     //propriete.EstHypotheque = true; //verrouillage de la case hypothèquée
 }