public override void MangiaPedina(Controllo controllo, int idPedina)
        {
            GiocatoreNero nero = GiocatoreNero.Instance();          // giocatore nero

            controllo.CambiaColorePedina(idPedina, "Libero");
            controllo.AggiungiPedinaSuTriangolo(idPedina, this.Colore);
            nero.AggiungiPedinaInOut(controllo);
        }
 // METODI
 public static GiocatoreNero Instance()
 {
     if (instance == null)
     {
         instance = new GiocatoreNero();
     }
     return(instance);
 }
        public override bool PossoMangiare(Controllo controllo, int idPedina)
        {
            GiocatoreNero nero     = GiocatoreNero.Instance();      // giocatore nero
            bool          risposta = false;

            if (Equals(controllo.ColoreTriangolo(idPedina), nero.Colore) && controllo.ContaPedineSuTriangolo(idPedina) < 2)
            {
                risposta = true;
            }
            return(risposta);
        }
        public override string TogliPedina(Controllo controllo)
        {
            GiocatoreNero nero      = GiocatoreNero.Instance();     // giocatore nero
            string        messaggio = "OK";

            if (Equals(controllo.ColoreTriangolo(120 - (controllo.DadoScelto().Valore * 5)), this.Colore))
            {
                controllo.TogliUtlimaPedinaTriangolo(120 - controllo.DadoScelto().Valore * 5);
            }
            else if ((Equals(controllo.ColoreTriangolo(120 - (controllo.DadoScelto().Valore * 5)), "Libero") || Equals(controllo.ColoreTriangolo(120 - (controllo.DadoScelto().Valore * 5)), nero.Colore)) && (120 - (controllo.DadoScelto().Valore * 5)) <= PrimoTriangoloOccupatoBase(controllo))
            {
                controllo.TogliUtlimaPedinaTriangolo(PrimoTriangoloOccupatoBase(controllo));
            }
            else
            {
                messaggio = "Mossa non possibile";
            }
            return(messaggio);
        }
        protected override int PrimoTriangoloOccupatoBase(Controllo controllo)
        {
            GiocatoreNero nero = GiocatoreNero.Instance();          // giocatore nero
            int           id   = 90;
            int           i;

            for (i = 90; i < 120; i += 5)
            {
                if (Equals(controllo.ColoreTriangolo(i), "Libero") || Equals(controllo.ColoreTriangolo(i), nero.Colore))
                {
                    id = i + 5;
                }
                else
                {
                    i = 120;
                }
            }
            return(id);
        }
        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);
        }