Exemplo n.º 1
0
        void PushTile_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (kleurAanDeBeurt == kleurVanSpeler)
            {
                #region Tijdens het spel (Verplaatsen van Pinguin)
                SpelTile hulp = sender as SpelTile;                  //Maak een hulptegel aan zondat we met de waarde van de sender kunnen werken.

                if (opZetFace == false && verplaatsingsface == true) //Wanneer we een pinguin willen verplaatsen. Dit is het moment dat we op de nieuwe tegel drukken.
                {
                    int rowVerschil    = hulp.Row - hulpTegel2.Row;
                    int columnVerschil = hulp.Column - hulpTegel2.Column;
                    int zoekTussenliggendeRows;
                    int zoekTussenliggendeColumns;
                    if ((Math.Abs(rowVerschil) == Math.Abs(columnVerschil)) || (hulp.Row == hulpTegel2.Row))
                    {
                        magVerplaatsen = true;
                        if (rowVerschil > 0)
                        {
                            zoekTussenliggendeRows = 1;
                        }
                        else
                        {
                            zoekTussenliggendeRows = -1;
                        }
                        if (columnVerschil > 0)
                        {
                            zoekTussenliggendeColumns = 1;
                        }
                        else
                        {
                            zoekTussenliggendeColumns = -1;
                        }


                        for (int i = 1; i <= Math.Abs(columnVerschil); i++)
                        {
                            foreach (var pinguin in SpelBord.Children)
                            {
                                SpelSpeelstuk eenSpeelstuk = pinguin as SpelSpeelstuk;
                                if (eenSpeelstuk != null)
                                {
                                    if ((Math.Abs(rowVerschil) == Math.Abs(columnVerschil) &&
                                         Grid.GetRow(eenSpeelstuk) == hulpTegel2.Row + i * zoekTussenliggendeRows &&
                                         Grid.GetColumn(eenSpeelstuk) == hulpTegel2.Column + i * zoekTussenliggendeColumns) ||
                                        (hulp.Row == hulpTegel2.Row &&
                                         Grid.GetRow(eenSpeelstuk) == hulpTegel2.Row &&
                                         Grid.GetColumn(eenSpeelstuk) == hulpTegel2.Column + i * zoekTussenliggendeColumns))
                                    {
                                        magVerplaatsen = false;
                                        MessageBox.Show("Invalid action!\nJe mag niet over gaten en andere pinguins springen.");
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Invalid action!\nJe mag je alleen over de horizontale en diagonale lijnen verplaantsen.");
                    }
                }
                #endregion
                #region Opzetface (Wanneer de pinguins geplaats moeten worden)
                if (opZetFace == true || magVerplaatsen == true) //Wanneer we een pinguin mogen plaatsen of verplaatsen.
                {
                    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                    client.OpzetFaseCompleted += new EventHandler <ServiceReference1.OpzetFaseCompletedEventArgs>(client_OpzetFaseCompleted);
                    client.OpzetFaseAsync();

                    VorigeTegel    = hulpTegel2; //Onthoud van waar de pinguin kwam.
                    hulpTegel2     = hulp;       //Onthound waar de pinguin op gezet wordt.
                    magVerplaatsen = false;      //De pinguin mag niet meer verpaatst worden.

                    punten[teller] += hulp.RandomNummer;

                    eigenPunten += hulp.RandomNummer;
                    //kleurVanSpeler = CheckKleurVanSpeler(kleurVanSpeler);
                    //MessageBox.Show("Speler: " + kleur + "\nteller: " + teller + "\nPunten: " + punten[teller]);
                }
                #endregion
            }
            else
            {
                MessageBox.Show("Wacht tot het jouw beurt is.");
            }
        }