}//end costruttore /* * Override del metodo effetto. * Il metodo sposta la pedina in una data posizione (destinazione) passata * all'atto della creazione */ public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { int tiro = p.muovi(_destinazione - p.posizione); t.sposta(p, tiro); evento.Invoke(this, new ArgEvento <Pedina>(p)); }
}//end turnoGiocatore //metodo per gestire il turno dei bot private void turnoBot(Pedina p) { int tiro = lanciaDadi(); sposta(p, p.muovi(tiro)); OnPosizione_Updated.Invoke(this, new ArgEvento <Pedina>(p)); }//end turnoBot
/* * Override del metodo effetto. * Il metodo sposta la pedina di n posizioni pari al tiro * effettuato precedentemente. */ public override void effetto(TavoloDaGioco t, Pedina p, EventHandler <ArgEvento <Pedina> > evento) { if (!p.vincitore) { int tiro = p.muovi(p.tiroPrecedente); t.sposta(p, tiro); } evento.Invoke(this, new ArgEvento <Pedina>(p)); }
//metodo per gestire il turno dell'utente private void turnoGiocatore(Pedina p) { int tiro = 0; //se la pedina non è in attesa o in prigione //lancio il dado, altrimenti passo 0 come lancio if (!p.inAttesa && _inPrigione != p && _inPozzo != p) { tiro = lanciaDadi(); } OnValueDadi_Updated.Invoke(this, new ArgEvento <int>(tiro)); sposta(p, p.muovi(tiro)); OnPosizione_Updated.Invoke(this, new ArgEvento <Pedina>(p)); }//end turnoGiocatore