//tilakone, jota kutsutaan joka systemtimerin tickillä public void Arvonta() { try { switch (tila) { case PeliState.Arvonta: // Arpoo mikä nappi syttyy, jos sama nappi syttyisi 2. peräkkäin arpoo ohjelma uudestaan. int tarkistus = 0; do { arvottuvari = rng.Next(0, 4); //Jos lista on tyhjä lisätään arvottu listaan if (Arvotutnumerot.Count == 0) { tarkistus = 1; Arvotutnumerot.Add(arvottuvari); tila = PeliState.Valopaalla; } //Jos arvottuvari = listan viimeinen elementti arvotaan uudestaan else if (arvottuvari == Arvotutnumerot[Arvotutnumerot.Count - 1]) { tarkistus = 0; tila = PeliState.Arvonta; } //ei ole ensimmäinen listassa, eikä sama else { tarkistus = 1; Arvotutnumerot.Add(arvottuvari); tila = PeliState.Valopaalla; } } while (tarkistus != 1); this.Dispatcher.Invoke(() => { Button1.Background = Brushes.Lime; Button2.Background = Brushes.Blue; Button3.Background = Brushes.Gold; Button4.Background = Brushes.Salmon; }); break; //Sytyttää arvottua varia vastaavan napin case PeliState.Valopaalla: if (arvottuvari == 0) { this.Dispatcher.Invoke(() => { Button1.Background = Brushes.White; }); } else if (arvottuvari == 1) { this.Dispatcher.Invoke(() => { Button2.Background = Brushes.White; }); } else if (arvottuvari == 2) { this.Dispatcher.Invoke(() => { Button3.Background = Brushes.White; }); } else if (arvottuvari == 3) { this.Dispatcher.Invoke(() => { Button4.Background = Brushes.White; }); } break; case PeliState.GameOver: valotimer.Stop(); systemtimer.Stop(); GameOver peliikkuna = new GameOver(); peliikkuna.Show(); Music.PlayPause(); this.Close(); break; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }