Ejemplo n.º 1
0
        // fine metodi gestione dadi
        // fine metodi gestione gioco
        // metodi per il movimento
        public string MuoviPedina(object pedina, object giocatore)  // fa muovere le pedine ai giocatori e restituisce l'esito
        {
            GiocatoreBianco bianco    = GiocatoreBianco.Instance(); // giocatore bianco
            GiocatoreNero   nero      = GiocatoreNero.Instance();   // giocatore nero
            string          messaggio = "OK";

            if (Equals(giocatore, bianco))
            {
                if (TrovaIdPedina((PictureBox)pedina) < 120 && Equals(ColorePedina(TrovaIdPedina((PictureBox)pedina)), bianco.Colore)) // se la pedina è in campo
                {
                    if (bianco.PossoMuovereGenerale(this))                                                                             // se posso muovere
                    {
                        if (bianco.PossoMuovereQuesto(this, TrovaIdPedina((PictureBox)pedina)))
                        {
                            bianco.MuoviPedina(this, TrovaIdPedina((PictureBox)pedina));        // muovo
                        }
                        else
                        {
                            messaggio = "Mossa non possibile";
                        }
                    }
                    else                                                                    // se non posso muovere
                    {
                        messaggio = "Non ci sono\nmosse disponibili";                       // messaggio errore
                    }
                }
                else
                {
                    messaggio = "Non puoi muovere\nquella pedina";
                }
            }
            else if (Equals(giocatore, nero))
            {
                if (TrovaIdPedina((PictureBox)pedina) < 120 && Equals(ColorePedina(TrovaIdPedina((PictureBox)pedina)), nero.Colore)) // se la pedina è in campo
                {
                    if (nero.PossoMuovereGenerale(this))                                                                             // se posso muovere
                    {
                        if (nero.PossoMuovereQuesto(this, TrovaIdPedina((PictureBox)pedina)))
                        {
                            nero.MuoviPedina(this, TrovaIdPedina((PictureBox)pedina));        // muovo
                        }
                        else
                        {
                            messaggio = "Mossa non possibile";
                        }
                    }
                    else                                                                    // se non posso muovere
                    {
                        messaggio = "Non ci sono\nmosse disponibili";                       // messaggio errore
                    }
                }
                else
                {
                    messaggio = "Non puoi muovere\nquella pedina";
                }
            }
            return(messaggio);
        }
Ejemplo n.º 2
0
        public Giocatore MostraTurno()                              // ritorna il giocatore che deve giocare
        {
            GiocatoreBianco bianco = GiocatoreBianco.Instance();    // giocatore bianco
            GiocatoreNero   nero   = GiocatoreNero.Instance();      // giocatore nero
            Giocatore       turno  = null;

            if (bianco.MioTurno)
            {
                turno = bianco;
            }
            else if (nero.MioTurno)
            {
                turno = nero;
            }
            return(turno);
        }
Ejemplo n.º 3
0
        public string TogliPedina(object giocatore)                 // fa togliere le pedine ai giocatori a fine partita e restituisce l'esito
        {
            GiocatoreBianco bianco    = GiocatoreBianco.Instance(); // giocatore bianco
            GiocatoreNero   nero      = GiocatoreNero.Instance();   // giocatore nero
            string          messaggio = "OK";

            if (Equals(giocatore, bianco))
            {
                messaggio = bianco.TogliPedina(this);
            }
            else if (Equals(giocatore, nero))
            {
                messaggio = nero.TogliPedina(this);
            }
            return(messaggio);
        }
Ejemplo n.º 4
0
        public string QualeMovimento(Giocatore giocatore)           // restituisce il movimento che bisogna fare
        {
            Dado            dado1  = Dado.Instance("dado1");        // dado di sinistra
            Dado            dado2  = Dado.Instance("dado2");        // dado di destra
            GiocatoreBianco bianco = GiocatoreBianco.Instance();    // giocatore bianco
            GiocatoreNero   nero   = GiocatoreNero.Instance();      // giocatore nero
            string          movimento;

            if (Equals(giocatore, bianco))
            {
                if (bianco.PedineMangiate)            // se ho pedine fuori
                {
                    movimento = "Rimetti";
                }
                else if (bianco.PossoTogliere(this) && (dado1.Valore != 0 || dado2.Valore != 0)) // se posso togliere
                {
                    movimento = "Scelta";
                }
                else                                    // non posso togliere quindi muovo
                {
                    movimento = "Muovi";
                }
            }
            else if (Equals(giocatore, nero))
            {
                if (nero.PedineMangiate)            // se ho pedine fuori
                {
                    movimento = "Rimetti";
                }
                else if (nero.PossoTogliere(this)) // se posso togliere
                {
                    movimento = "Scelta";
                }
                else                                    // non posso togliere quindi muovo
                {
                    movimento = "Muovi";
                }
            }
            else
            {
                movimento = "Errore";
            }

            return(movimento);
        }
Ejemplo n.º 5
0
        private void InizializzaTavola()                                    // ragruppa tutte le funzioni da fare all'avvio del gioco
        {
            Controllo controllo = Controllo.Instance();

            ImpostaListaPedine();
            ImpostaCaratteristichePedine();
            ImpostaListaIndiciPedine();
            ImpostaCaratteristicheIndiciPedine();
            ImpostaListaPedineInPiù();
            ImpostaListaDadi();
            ImpostaInizioGioco();
            GiocatoreBianco bianco = GiocatoreBianco.Instance();    // giocatore bianco
            GiocatoreNero   nero   = GiocatoreNero.Instance();      // giocatore nero

            bianco.Colore   = "Bianco";
            bianco.MioTurno = true;
            nero.Colore     = "Nero";
            nero.MioTurno   = false;
            controllo.ContaPedine();
        }
Ejemplo n.º 6
0
        // metodi gestione turni
        public void InvertiTurno()                                  // cambia il giocatore che deve giocare
        {
            GiocatoreBianco bianco = GiocatoreBianco.Instance();    // giocatore bianco
            GiocatoreNero   nero   = GiocatoreNero.Instance();      // giocatore nero

            if (bianco.MioTurno)
            {
                bianco.MioTurno = false;
            }
            else
            {
                bianco.MioTurno = true;
            }
            if (nero.MioTurno)
            {
                nero.MioTurno = false;
            }
            else
            {
                nero.MioTurno = true;
            }
        }
Ejemplo n.º 7
0
        // fine metodi gestione turni
        // metodi gestione pedine
        public void ContaPedine()                                   // conta quante pedine hanno ancora i giocatori
        {
            GiocatoreBianco bianco = GiocatoreBianco.Instance();    // giocatore bianco
            GiocatoreNero   nero   = GiocatoreNero.Instance();      // giocatore nero
            int             i;

            PedineBianche = 0;
            PedineNere    = 0;
            for (i = 0; i < 122; i++)
            {
                if (Equals(ColorePedina(i), bianco.Colore))
                {
                    PedineBianche++;
                    if (i % 5 == 4)
                    {
                        PedineBianche += PedineInPiù.LeggiLista[TrovaIdTriangolo(i)];
                    }
                    if (i == 121)
                    {
                        PedineBianche += PedineInPiù.LeggiLista[i] - 1;
                    }
                }
                if (Equals(ColorePedina(i), nero.Colore))
                {
                    PedineNere++;
                    if (i % 5 == 4 && i != 120)
                    {
                        PedineNere += PedineInPiù.LeggiLista[TrovaIdTriangolo(i)];
                    }
                    else if (i == 120)
                    {
                        PedineNere += PedineInPiù.LeggiLista[i] - 1;
                    }
                }
            }
        }
Ejemplo n.º 8
0
        public string RimettiPedina(object pedina, object giocatore) // fa rimettere le pedine mangiate ai giocatori e restituisce l'esito
        {
            Dado            dado1     = Dado.Instance("dado1");      // dado di sinistra
            Dado            dado2     = Dado.Instance("dado2");      // dado di destra
            GiocatoreBianco bianco    = GiocatoreBianco.Instance();  // giocatore bianco
            GiocatoreNero   nero      = GiocatoreNero.Instance();    // giocatore nero
            string          messaggio = "OK";

            if (Equals(giocatore, bianco))
            {
                if (TrovaIdPedina((PictureBox)pedina) > 120)
                {
                    if (bianco.PossoRimettereGenerale(this))
                    {
                        if (bianco.PossoRimettereQui(this))
                        {
                            bianco.RimettiPedina(this, TrovaIdPedina((PictureBox)pedina));
                        }
                        else
                        {
                            messaggio = "Mossa non possibile";
                            if (DadoScelto() == dado1 && dado2.Valore == 0)
                            {
                                messaggio = "Non ci sono\nmosse disponibili";
                            }
                            else if (DadoScelto() == dado2 && dado1.Valore == 0)
                            {
                                messaggio = "Non ci sono\nmosse disponibili";
                            }
                        }
                    }
                    else
                    {
                        messaggio = "Non ci sono\nmosse disponibili";
                    }
                }
                else
                {
                    messaggio = "Devi reinserire\nle pedine";
                }
            }
            if (Equals(giocatore, nero))
            {
                if (TrovaIdPedina((PictureBox)pedina) == 120)
                {
                    if (nero.PossoRimettereGenerale(this))
                    {
                        if (nero.PossoRimettereQui(this))
                        {
                            nero.RimettiPedina(this, TrovaIdPedina((PictureBox)pedina));
                        }
                        else
                        {
                            messaggio = "Mossa non possibile";
                            if (DadoScelto() == dado1 && dado2.Valore == 0)
                            {
                                messaggio = "Non ci sono\nmosse disponibili";
                            }
                            else if (DadoScelto() == dado2 && dado1.Valore == 0)
                            {
                                messaggio = "Non ci sono\nmosse disponibili";
                            }
                        }
                    }
                    else
                    {
                        messaggio = "Non ci sono\nmosse disponibili";
                    }
                }
                else
                {
                    messaggio = "Devi reinserire\nle pedine";
                }
            }

            return(messaggio);
        }