public void InserisciMossa(string mossa) { Coordinata partenza = InterpretaCoordinataCasa(mossa.Substring(0, 2)); Coordinata arrivo = InterpretaCoordinataCasa(mossa.Substring(3, 2)); /// }
public void InserisciMossa(string mossa) { Coordinata partenza = InterpretaCoordinataCasa(mossa.Substring(0, 2)); Coordinata arrivo = InterpretaCoordinataCasa(mossa.Substring(3, 2)); ICasa casaPartenza = Scacchiera[partenza.Colonna, partenza.Traversa]; ICasa casaArrivo = Scacchiera[arrivo.Colonna, arrivo.Traversa]; if (casaPartenza.PezzoPresente == null || casaPartenza.PezzoPresente?.Colore != Orologio.TurnoAttuale || casaArrivo.PezzoPresente?.Colore == Orologio.TurnoAttuale || casaPartenza.PezzoPresente?.PuòMuovere(partenza.Colonna, partenza.Traversa, arrivo.Colonna, arrivo.Traversa, Scacchiera.Case) == false ) { throw new InvalidOperationException("Mossa non valida"); } Scacchiera.SpostaPezzo(casaPartenza, casaArrivo); BloccoNote.ScriviMossa(mossa); //Controllo che il re non sia stato mangiato Colore coloreControlloSconfitta; if (Orologio.TurnoAttuale == Colore.Bianco) { coloreControlloSconfitta = Colore.Nero; } else { coloreControlloSconfitta = Colore.Bianco; } bool reInVita = Scacchiera.ReInVita(coloreControlloSconfitta); if (!reInVita) { Vittoria.Invoke(Scacchiera, Orologio.TurnoAttuale); } Orologio.FineTurno(); }