Beispiel #1
0
 //Syötteen arvioinnissa pelaajan syötettä verrataan arvottuun listaan
 public void Syotteenarviointi()
 {
     try
     {
         //Jos arvottu lista on tyhjä TAI lista on yhtä pitkä kun pelaajalla on pisteitä ja hän antaa syötteen -> game over
         if (Arvotutnumerot.Count == 0 || Arvotutnumerot.Count == PeliTiedot.PojoTallennus)
         {
             tila = PeliState.GameOver;
             lblPisteet.Content = "Game over";
         }
         //Jos pelaaja on listaa jäljessä ja syöte on oikein pisteet +1
         else if ((syote - 1) == Arvotutnumerot[PeliTiedot.PojoTallennus])
         {
             PeliTiedot.PojoTallennus++;
             lblPisteet.Content = PeliTiedot.PojoTallennus;
             syote = 0;
         }
         //Syöte on väärin -> game over
         else
         {
             tila = PeliState.GameOver;
             lblPisteet.Content = "Game over";
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Beispiel #2
0
 //Ohjaa tilakoneen arvontaan ja pienentää valotimerin intervallia
 private void valotimer_Tick(object sender, EventArgs e)
 {
     try
     {
         if (tila != PeliState.GameOver)
         {
             if (indeksi < 200)
             {
                 indeksi++;
                 int x = 700 - (indeksi * 3);
                 valotimer.Interval = new TimeSpan(0, 0, 0, 0, x);
                 lblAika.Content    = "Aikaväli: " + x.ToString();
             }
             else
             {
                 valotimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
                 lblAika.Content    = "Aikaväli: 100";
             }
             tila = PeliState.Arvonta;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Beispiel #3
0
 //Asettaa tilakoneen tilan ja aloittaa timerit
 private void Startbutton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Startbutton.IsEnabled = false;
         indeksi = 0;
         PeliTiedot.PojoTallennus = 0;
         PeliTiedot.PeliId        = 2;
         tila = PeliState.Arvonta;
         TimerInit();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Beispiel #4
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);
            }
        }