예제 #1
0
 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);
 }
예제 #2
0
 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);
 }
예제 #3
0
 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;
     }
 }
예제 #4
0
 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();
 }