Ejemplo n.º 1
0
 //nieuw blok in random queue(2)
 private void OnKanNietZakken(object sender, EventArgs e)
 {
     _veld.CheckVerwijderVolleLijnen();
     _huidigBlok = _wachtrij.Dequeue();
     if (_huidigBlok.TrueForAll(pos => pos.Kleur == null))
     {
         _huidigBlok.NeemIn();
         Blok display = RandomBlok();
         _wachtrij.Enqueue(display);
         this.Dispatcher.Invoke(() =>
         {
             for (int i = 0; i < _volgendBlokLabels.Length; i++)
             {
                 _volgendBlokLabels[i].Background = Brushes.Black;
             }
             int[] indexen = display.GetDisplayIndexen();
             foreach (int i in indexen)
             {
                 _volgendBlokLabels[i].Background = display.Kleur;
             }
         });
         _huidigBlok.KanNietZakken += OnKanNietZakken; //OnKanNietZakken inschrijven bij new Blok
         ChangeColor();
     }
     else //game over
     {
         Pauze();
         _huidigBlok = null;
         _wachtrij.Clear();
         _veld.LijnenGemaakt -= OnLijnenGemaakt;
         this.Dispatcher.Invoke(() =>
         {
             _bord.Children.Add(_kiesRankBtn);
             _kiesRankComboBox.SelectedIndex = -1;
             _nieuwSpelBtn.Content           = "Nieuw spel";
             _tekstBlok.Text = StandaardText() + "\nGame Over!";
         });
     }
 }