예제 #1
0
 // Méthode pour retirer une carte
 public void RetirerCarte(Carte C)
 {
     Memoire = C;
     Piopioche.Remove(C);
 }
예제 #2
0
        // Méthode pour piocher une carte
        public bool PiocherCarte(Joueur J, Case[] Plateau, List <Joueur> Joueurs)
        {
            // Carte tirée
            Carte Carte = Piopioche[DessusPioche % Piopioche.Count];

            Console.WriteLine(Carte);

            // Cas d’une carte à conserver
            if (Carte.Type == "Prison")
            {
                if (Plateau[J.Position].NomCase == "Chance")
                {
                    J.Chance = true;
                }
                else if (Plateau[J.Position].NomCase == "Caisse de Communauté")
                {
                    J.Communaute = true;
                }
                Memoire = Carte;
                Piopioche.Remove(Carte);
            }

            // Cas d’une carte de déplacement
            else if (Carte.Type == "Deplacement")
            {
                // Cas où l’on avance
                if (Carte.Position >= 0)
                {
                    J.AccesDirect(Plateau, Carte.Position);
                }

                // Cas où l’on recule
                else
                {
                    J.Deplacement(Plateau, Carte.Position);
                }
            }

            // Cas d’une carte de débit
            else if (Carte.Type == "Debit")
            {
                J.RetraitArgent(Carte.Montant1);
            }

            // Cas d’une carte de crédit
            else if (Carte.Type == "Credit")
            {
                J.AjoutArgent(Carte.Montant1);
            }

            // Cas d’une carte d’impôt sur les bâtiments
            if (Carte.Type == "TaxeBatiment")
            {
                int    NbMaisons = 0;
                int    NbHotels  = 0;
                double Virement  = 0;

                // Calcul du nombre de maisons et d’hôtels possédés par le joueur
                for (int i = 0; i < J.Terrains.Count; i++)
                {
                    NbMaisons += J.Terrains[i].NbMaisons;
                    if (J.Terrains[i].Hotel)
                    {
                        NbHotels += 1;
                    }
                }

                Virement = NbHotels * Carte.Montant2 + NbMaisons * Carte.Montant1;

                if (Virement != 0)
                {
                    J.RetraitArgent(Virement);
                }
            }

            // Cas d’une carte anniversaire
            if (Carte.Type == "Anniversaire")
            {
                double Versement = 0;
                int    i         = 0;

                while (i < Joueurs.Count && J != Joueurs[i])
                {
                    Versement += Joueurs[i].RetraitArgent(Carte.Montant1);
                    if (Joueurs[i].Perdu)
                    {
                        Joueurs[i].TransfererPossessions(J);
                    }
                    i += 1;
                }

                J.AjoutArgent(Versement);
            }

            // Cas d’une carte alternative
            if (Carte.Type == "AlternativeChance")
            {
                bool Entier = false;
                int  Rep    = 0;

                while (!Entier)
                {
                    Console.WriteLine("\nTapez 1 pour payer l’amende");
                    Console.WriteLine("Tapez 2 pour tirer une carte Chance");
                    Console.Write("Votre réponse : ");
                    try
                    {
                        Rep = int.Parse(Console.ReadLine());
                        if (Rep == 1 || Rep == 2)
                        {
                            Entier = true;
                        }
                    }
                    catch
                    {
                        Console.WriteLine("\nVous n’avez pas tapé 1 ou 2\nVeuillez recommencer");
                    }
                }

                if (Rep == 1)
                {
                    J.RetraitArgent(Carte.Montant1);
                }

                else if (Rep == 2)
                {
                    return(true);
                }
            }

            DessusPioche += 1;
            return(false);
        }
예제 #3
0
 // Méthode pour ajouter une carte
 public void AjouterCarte(Carte C)
 {
     Piopioche.Add(C);
 }