예제 #1
0
 /// <summary>
 /// Der Konstruktor der Die RelayCommand Erstellt
 /// </summary>
 public Spiel()
 {
     SpielStarten             = new RelayCommand((object a) => SpielStartenSchleife(), f => !Laeuft);
     SpielStoppen             = new RelayCommand((object a) => SpielSchleifeStoppen(), f => Laeuft);
     SpielBrettErstellen      = new RelayCommand((object a) => SpielBrett = new SpielBrett(Breite, Hoehe, PixelAnzahl), f => (HatBreite && HatHoehe && HatPixelAnzahl) && !Laeuft);
     SpielBrettZufälligFüllen = new RelayCommand((object a) => SpielBrett.ZellenZufälligEinfügen(), (object f) => !Laeuft);
 }
예제 #2
0
 /// <summary>
 /// Startet eine Schleife in der das Spiel Läuft
 /// </summary>
 public void SpielStartenSchleife()
 {
     Laeuft = true;
     ThreadPool.QueueUserWorkItem(o =>
     {
         while (Laeuft)
         {
             SpielBrett.NaechsterZug();
             Thread.Sleep(Verzoegerung);
         }
     });
 }
예제 #3
0
        /// <summary>
        /// Errechnet den Nächsten Status der Zelle
        /// </summary>
        /// <param name="spielBrett"></param>
        public void GetNaechstenStatus(SpielBrett spielBrett)
        {
            int LebendeNachbarn = Nachbarn.Select(point => spielBrett[point]).Count(zelle => zelle.Lebt);

            if (!Lebt)
            {
                WirdLeben = LebendeNachbarn == 3;
            }
            else
            {
                WirdLeben = (LebendeNachbarn >= 2 && LebendeNachbarn <= 3);
            }
        }