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