public override void verarbeiteSpielzug(Spielzug zuVerarbeitenderSpielzug) { int anzahlVersenkterSchiffe = 0; Schussergebnis neuerTreffer = Schussergebnis.verfehlt; // Schiffe abprüfen for (int i = 0; i < schiffe.Count(); i++) { // Schussversuch abgeben Schussergebnis tmp = schiffe[i].schussVersuch(zuVerarbeitenderSpielzug.reihe, zuVerarbeitenderSpielzug.spalte); // Falls getroffen oder versenkt if ( !( tmp == Schussergebnis.verfehlt )) neuerTreffer = tmp; if (schiffe[i].versenkt() == true) anzahlVersenkterSchiffe++; } if (schiffe.Count() == anzahlVersenkterSchiffe) neuerTreffer = Schussergebnis.gameOver; if (neuerTreffer == Schussergebnis.gameOver) this.spielVerloren = true; // Spielzugbeendet auslösen raiseSpielzugBeendet(zuVerarbeitenderSpielzug.spielzugnummer, neuerTreffer); }
public void speicherSpielzug( Spielzug zuSpeichernderSpielzug ) { spielzuege.Add(zuSpeichernderSpielzug); }
private void SpielzugErstellen(int reihe, int spalte) { // Spielzug einstellen Spielzug tmp = new Spielzug(aktuellerSpieler, "testSpiel", spiel.naechsteSpielzugNummer(), reihe, spalte); // An Spiel übergeben spiel.verarbeiteSpielzug(tmp); }
public void verarbeiteSpielzug(Spielzug neuerSpielzug) { // Spielzug muss zum laufenden Spiel passen if (!(neuerSpielzug.spielID == this.spielID)) return; // Spielzug muss der nächste sein if (!(neuerSpielzug.spielzugnummer == spielprotokoll.naechsteSpielzugnummer())) return; spielprotokoll.speicherSpielzug(neuerSpielzug); // Spielzug an den jeweils anderen übergeben if (spieler[ICH].name == neuerSpielzug.spieler) spieler[DU].verarbeiteSpielzug(neuerSpielzug); else { spieler[ICH].verarbeiteSpielzug(neuerSpielzug); } return; }
public abstract void verarbeiteSpielzug(Spielzug zuVerarbeitenderSpielzug);