public bool speicherAntwort(SpielzugAnwort antwort)
 {
     antworten.Add(antwort);
     // Nach einem passenden Spielzug suchen
     for (int i = 0; i < spielzuege.Count(); i++)
         if ((spielzuege[i].spielzugnummer == antwort.spielzugnummer))
             return true;
     return false;
 }
 private void SpielzugVerarbeitet(SpielzugAnwort antwort)
 {
     logLine(antwort.spielID + " - " + antwort.spieler + " - " + antwort.spielzugnummer.ToString() + " - " + antwort.schussergebnis.ToString());
     aktuellenSpielerBestimmen();
 }
        private void spielfeldUpdaten(SpielzugAnwort antwort)
        {
            int index = -1;

            // Richtiges Spielfeld wählen
            if (antwort.spieler == spieler[ICH].name)
                index = DU; // Antwort komm von DU, Eintrag in meine Karte
            else
                index = ICH; // und umgekehrt

            int reihe, spalte;

            // Reihe und Spalte sind im Protokoll gespeichert
            reihe = spielprotokoll.getReiheZuSpielzug(antwort.spielzugnummer);
            if (reihe < 0) return;
            spalte = spielprotokoll.getSpalteZuSpielzug(antwort.spielzugnummer);
            if (spalte < 0) return;

            spielfeld[index].setFeldStatus(reihe, spalte, antwort.schussergebnis);

            // Ereignis auslösen, damit Oberfläche sich anpassen kann
            feldStatusGeaendert(reihe, spalte, antwort.schussergebnis);
        }
 private void verarbeiteSpielzugAntwort(SpielzugAnwort antwort)
 {
     spielprotokoll.speicherAntwort(antwort);
     spielfeldUpdaten(antwort);
     SpielzugBeendet ( antwort );
     if (spieler[ICH].isGameOver())
         gameOver(true);
     else if (spieler[DU].isGameOver())
         gameOver(false);
 }
 protected void raiseSpielzugBeendet(int spielzugnummer, Schussergebnis ergebnis)
 {
     SpielzugAnwort antwort = new SpielzugAnwort(this.name, this.spielID, spielzugnummer, ergebnis);
     if (spielzugBeendet == null) return;
     spielzugBeendet(antwort);
 }