public void Prüfe_auf_Spielende(Event[] spielzüge, Action beiSpielGehtWeiter, Action<Spielstatusse> beiSpielende) { Prüfe_auf_Gewinn(spielzüge, () => Prüfe_auf_Unentschieden(spielzüge, beiSpielGehtWeiter, () => beiSpielende(Spielstatusse.Unentschieden)), beiSpielende); }
private void Prüfe_auf_Gewinn(Event[] spielzüge, Action beiSpielGehtWeiter, Action<Spielstatusse> beiGwinn) { Prüfe_auf_Gewinn_für_Spieler(spielzüge, Spielstatusse.XamZug, Spielstatusse.Xgewonnen, () => Prüfe_auf_Gewinn_für_Spieler(spielzüge, Spielstatusse.OamZug, Spielstatusse.Ogewonnen, beiSpielGehtWeiter, beiGwinn), beiGwinn); }
public void Update(Event e) { switch (e.Name) { case Spielevents.EVENT_NEUES_SPIEL: _spielfelder = new Spielsteine[9]; break; case Spielevents.EVENT_SPIELSTEIN_GESETZT: var parts = e.Payload.Split(','); _spielfelder[int.Parse(parts[1])] = parts[0] == Spielstatusse.XamZug.ToString() ? Spielsteine.X : Spielsteine.O; break; } }
private void Prüfe_auf_Unentschieden(Event[] spielzüge, Action beiSpielGehtWeiter, Action beiUnentschieden) { if (spielzüge.Length >= 9) { _eventStore.Append(Spielevents.EVENT_SPIEL_UNENTSCHIEDEN, ""); beiUnentschieden(); } else beiSpielGehtWeiter(); }