コード例 #1
0
        public override bool PossoMuovereGenerale(Controllo controllo)
        {
            Dado dado1    = Dado.Instance("dado1");                          // dado di sinistra
            Dado dado2    = Dado.Instance("dado2");                          // dado di destra
            bool risposta = false;
            int  i;

            for (i = 0; i < 120; i += 5)
            {
                if (dado1.Valore != 0 && Equals(controllo.ColorePedina(i), this.Colore) && i + dado1.Valore * 5 < 120)
                {
                    if (!controllo.TriangoloLibero(i + (dado1.Valore * 5)))
                    {
                        if (PossoMangiare(controllo, i + (dado1.Valore * 5)))
                        {
                            risposta = true;
                        }
                        else if (Equals(controllo.ColoreTriangolo(i + dado1.Valore * 5), this.Colore))
                        {
                            risposta = true;
                        }
                    }
                    else if (Equals(controllo.ColoreTriangolo(i + (dado1.Valore * 5)), this.Colore) || Equals(controllo.ColoreTriangolo(i + (dado1.Valore * 5)), "Libero"))
                    {
                        risposta = true;
                    }
                }
                if (dado2.Valore != 0 && Equals(controllo.ColorePedina(i), this.Colore) && i + dado2.Valore * 5 < 120)
                {
                    if (!controllo.TriangoloLibero(i + (dado2.Valore * 5)))
                    {
                        if (PossoMangiare(controllo, i + (dado2.Valore * 5)))
                        {
                            risposta = true;
                        }
                        else if (Equals(controllo.ColoreTriangolo(i + dado2.Valore * 5), this.Colore))
                        {
                            risposta = true;
                        }
                    }
                    else if (Equals(controllo.ColoreTriangolo(i + (dado2.Valore * 5)), this.Colore) || Equals(controllo.ColoreTriangolo(i + (dado2.Valore * 5)), "Libero"))
                    {
                        risposta = true;
                    }
                }
            }
            return(risposta);
        }
コード例 #2
0
 // fine singleton
 public override void MuoviPedina(Controllo controllo, int idPedina)
 {
     if (Equals(controllo.ColorePedina(idPedina), this.Colore))
     {
         controllo.TogliUtlimaPedinaTriangolo(idPedina);
         if (PossoMangiare(controllo, idPedina + (controllo.DadoScelto().Valore * 5)))
         {
             MangiaPedina(controllo, controllo.TrovaIdTriangolo(idPedina + (controllo.DadoScelto().Valore * 5)));
         }
         else
         {
             controllo.AggiungiPedinaSuTriangolo(idPedina + (controllo.DadoScelto().Valore * 5), this.Colore);
         }
     }
 }
コード例 #3
0
        public override bool PossoTogliere(Controllo controllo)
        {
            Dado          dado1    = Dado.Instance("dado1");                 // dado di sinistra
            Dado          dado2    = Dado.Instance("dado2");                 // dado di destra
            GiocatoreNero nero     = GiocatoreNero.Instance();               // giocatore nero
            bool          risposta = false;
            int           i;
            int           contatorePedine = 0;

            for (i = 90; i < 120; i++)
            {
                if (Equals(controllo.ColorePedina(i), this.Colore))
                {
                    contatorePedine++;
                    if (i % 5 == 4)
                    {
                        contatorePedine += controllo.PedineInPiù.LeggiLista[controllo.TrovaIdTriangolo(i)];
                    }
                }
            }
            if (contatorePedine == controllo.PedineBianche)
            {
                if (dado1.Valore != 0)
                {
                    if (Equals(controllo.ColoreTriangolo(120 - (dado1.Valore * 5)), this.Colore))
                    {
                        risposta = true;
                    }
                    else if (Equals(controllo.ColoreTriangolo(120 - (dado1.Valore * 5)), "Libero") || Equals(controllo.ColoreTriangolo(i), nero.Colore))
                    {
                        for (i = 90; i <= 120 - (dado1.Valore * 5); i += 5)
                        {
                            if (Equals(controllo.ColoreTriangolo(i), "Libero") || Equals(controllo.ColoreTriangolo(i), nero.Colore))
                            {
                                risposta = true;
                            }
                            else
                            {
                                risposta = false;
                            }
                        }
                    }
                }
                if (dado2.Valore != 0)
                {
                    if (Equals(controllo.ColoreTriangolo(120 - (dado2.Valore * 5)), this.Colore))
                    {
                        risposta = true;
                    }
                    else if (Equals(controllo.ColoreTriangolo(120 - (dado2.Valore * 5)), "Libero") || Equals(controllo.ColoreTriangolo(i), nero.Colore))
                    {
                        for (i = 90; i <= 120 - (dado2.Valore * 5); i += 5)
                        {
                            if (Equals(controllo.ColoreTriangolo(i), "Libero") || Equals(controllo.ColoreTriangolo(i), nero.Colore))
                            {
                                risposta = true;
                            }
                            else
                            {
                                risposta = false;
                            }
                        }
                    }
                }
            }
            return(risposta);
        }