Ejemplo n.º 1
0
        //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);
            }
        }