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);
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);