コード例 #1
0
ファイル: Controleur.cs プロジェクト: Keonys/Monopoly
        /// <summary>
        /// Evénement lors du clic sur le btnLanceDes
        /// </summary>
        /// <param name="txtboxConsole"></param>
        public void clicBtnLanceDes(Rectangle pion1, Rectangle pion2, Label lblNomJoueur,
                                    Label lblArgentJoueur, List <Case> lCases, Image imgSortie, Button btnListe1, Button btnListe2, Button btnListe3, Button btnListe4, Button btnLanceDes,
                                    Label lblArgent, Label lblPion, Button btnTour, Label lblTour, Button btnFinPartie, Rectangle pionWin, Label lblWin)
        {
            this.listeCases = lCases;
            int resultat = 0;
            int position = 0;

            listeVisibility(btnLanceDes, lblArgent, lblArgentJoueur, btnListe1, btnListe2, btnListe3, btnListe4, lblPion, btnTour, lblTour, lblNomJoueur);
            nomBtnListe(listeJoueurs, btnListe1, btnListe2, btnListe3, btnListe4);

            foreach (Joueur j in listeJoueurs)
            {
                if (j.sonTour == true)
                {
                    Des.Lancer();
                    resultat = Des.Resultat;

                    //Affichage à la suite du résultat du lancé et affiche si le lanceur fait un doublé
                    C.AfficheDe(Des.Premier, Des.Deuxieme);
                    if (!j.EstEnPrison)
                    {
                        C.JoueurAvance(j.Nom, resultat);
                    }

                    if (Des.EstDouble() && j.EstEnPrison)
                    {
                        C.SortieChampBataille(j.Nom, true, false, false);
                        C.JoueurAvance(j.Nom, resultat);
                        j.estDouble = true;
                        j.nbrDouble++;
                    }
                    else if (Des.EstDouble())
                    {
                        C.Double();
                        j.estDouble = true;
                        j.nbrDouble++;
                    }
                    else if (j.EstEnPrison)
                    {
                        C.TenteDouble();
                        j.estDouble = false;
                        j.nbrDouble = 0;
                        j.nbrTourPrison++;

                        if (j.Sortie > 0)
                        {
                            System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show(
                                "Voulez-vous utiliser votre jeton de sortie pour sortir du champ de bataille ?",
                                "Champ de Bataille", System.Windows.Forms.MessageBoxButtons.YesNo);
                            if (dialogResult == System.Windows.Forms.DialogResult.Yes)
                            {
                                C.SortieChampBataille(j.Nom, false, true, false);
                                C.JoueurAvance(j.Nom, resultat);
                                j.estDouble = true;
                                j.nbrDouble++;
                                j.Sortie--;
                            }
                            else if (dialogResult == System.Windows.Forms.DialogResult.No)
                            {
                                C.ResterChampBataille(j.Nom);
                                resultat = 0;
                            }
                        }
                        else
                        {
                            System.Windows.Forms.DialogResult dialogResult = System.Windows.Forms.MessageBox.Show(
                                "Voulez-vous verser un pot de vin de 50€ pour sortir du champ de bataille ?",
                                "Champ de Bataille", System.Windows.Forms.MessageBoxButtons.YesNo);
                            if (dialogResult == System.Windows.Forms.DialogResult.Yes)
                            {
                                C.SortieChampBataille(j.Nom, false, false, true);
                                C.JoueurAvance(j.Nom, resultat);
                                j.estDouble = true;
                                j.nbrDouble++;
                                j.Argent -= 50;
                            }
                            else if (dialogResult == System.Windows.Forms.DialogResult.No)
                            {
                                C.ResterChampBataille(j.Nom);
                                resultat = 0;
                            }
                        }
                    }
                    else
                    {
                        j.estDouble = false;
                        j.nbrDouble = 0;
                    }

                    j.Position = Move(position, j, resultat);
                    position   = j.Position;
                    j.Placement(position, j, pion1, pion2, listePropriete, lCases, listeChance, imgSortie, listeCaisse);

                    lblArgentJoueur.Content = j.Argent;

                    if (j.estDouble)
                    {
                        break;
                    }
                    else
                    {
                        j.finTour(listeJoueurs, nbrJoueurs, lblNomJoueur, lblArgentJoueur, imgSortie, this, btnLanceDes, btnFinPartie, pionWin, lblWin,
                                  lblPion, btnListe1, btnListe2);
                        break;
                    }
                }
            }
            C.SautLigne();

            if (nbrJoueurs < 2)
            {
                listeJoueurs[0].gagnePartie(btnLanceDes, btnFinPartie, pionWin, lblWin, lblPion, btnListe1, btnListe2);
            }
        }