コード例 #1
0
ファイル: Schiedsrichter.cs プロジェクト: ralfw/DWX14Workshop
        private void Prüfe_auf_Gewinn_für_Spieler(IEnumerable<Event> spielzüge, Spielstatusse spieler, Spielstatusse gewinn,
                                                 Action beiSpielGehtWeiter, Action<Spielstatusse> beiGwinn)
        {
            var spielerzüge = spielzüge.Select(e => {
                                            var parts = e.Payload.Split(',');
                                            return new
                                            {
                                                Spieler = (Spielstatusse)Enum.Parse(typeof(Spielstatusse), parts[0]),
                                                Spielfeldindex = int.Parse(parts[1])
                                            };
                                        })
                                       .Where(e => e.Spieler == spieler)
                                       .Select(e => e.Spielfeldindex)
                                       .ToList();
            spielerzüge.Sort();

            if (new[] {
                    new[] {0, 1, 2}, new[] {3, 4, 5}, new[] {6, 7, 8},
                    new[] {0, 3, 6}, new[] {1, 4, 7}, new[] {2, 5, 8},
                    new[] {0, 4, 8}, new[] {2, 4, 6}
                }.Any(g => ArrayEqual(g, spielerzüge.ToArray())))
            {
                _eventStore.Append(Spielevents.EVENT_SPIEL_GEWONNEN, gewinn.ToString());
                beiGwinn(gewinn);
            }
            else
                beiSpielGehtWeiter();
        }
コード例 #2
0
ファイル: Mapper.cs プロジェクト: ralfw/DWX14Workshop
 public Spielstand Spieldstand_generieren(IEnumerable<Event> spielevents, Spielstatusse aktuellerSpieler)
 {
     return new Spielstand {Spielbrett = _spielbrett.Spielfelder,
                            Spielstatus = aktuellerSpieler};
 }
コード例 #3
0
ファイル: Spiel.cs プロジェクト: ralfw/DWX14Workshop
 public void Spielstein_setzen(Spielstatusse spieler, int spielfeldindex)
 {
     _eventStore.Append(Spielevents.EVENT_SPIELSTEIN_GESETZT, string.Format("{0},{1}", spieler, spielfeldindex));
 }
コード例 #4
0
ファイル: App.cs プロジェクト: ralfw/DWX14Workshop
 private void Spielstand_generieren(Spielstatusse spieler)
 {
     var spielzüge = _spiel.Spielzüge_des_aktuellen_Spiels_ermittteln();
     var spielstand = _map.Spieldstand_generieren(spielzüge, spieler);
     Spielstand_aktualisiert(spielstand);
 }