// 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); }
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); }
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); }
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); }
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(); }
// 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; } }
// 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; } } } }
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); }