Exemplo n.º 1
0
        public void createGrid(List<string> doolhof)
        {
            BottomBord bottomBord = new BottomBord(doolhof, "");
            TopBord topBord = new TopBord(doolhof, "");

            this.VakkenView.Children.Add(bottomBord.toonGrid());
            this.SpeelBord.Children.Add(topBord.toonGrid());

            ResetTimer();
            StartTimer();
            verstrekenTijd.Content = "Tijd: " + _seconden;
            aantalZetten.Content = "Zetten: " + _zetten;
        }
Exemplo n.º 2
0
        // Key Events
        private void Game_KeyDown(object sender, KeyEventArgs e)
        {
            if (doolhof != null)
            {
                List<string> tempDoolhof = doolhof;
                string row;
                string verticalRow;
                string secondVerticalRow;
                int positieSpeler;
                int spelerRow;

                string richting;

                switch (e.Key)
                {
                    case Key.Left:
                        richting = "links";

                        // Vind de rij van de speler
                        row = tempDoolhof[VindSpeler()];

                        // Vind de positie van de speler
                        spelerRow = VindSpeler();
                        positieSpeler = row.IndexOf("@");

                        // Vind de nieuwe positie
                        if (row[positieSpeler - 1].Equals(Convert.ToChar(" ")) || row[positieSpeler - 1].Equals(Convert.ToChar("x")))
                        {
                            char[] temp = row.ToCharArray();
                            temp[positieSpeler - 1] = Convert.ToChar("@");
                            temp[positieSpeler] = Convert.ToChar(" ");

                            tempDoolhof[VindSpeler()] = new string(temp);
                        }

                        // Staat er een doos?
                        if (row[positieSpeler - 1].Equals(Convert.ToChar("o")))
                        {
                            // Kan de doos bewegen?
                            if (row[positieSpeler - 2].Equals(Convert.ToChar(" ")) || row[positieSpeler - 2].Equals(Convert.ToChar("x")))
                            {
                                // Beweeg doos
                                char[] temp = row.ToCharArray();
                                temp[positieSpeler - 2] = Convert.ToChar("o");
                                temp[positieSpeler - 1] = Convert.ToChar("@");
                                temp[positieSpeler] = Convert.ToChar(" ");

                                tempDoolhof[VindSpeler()] = new string(temp);
                            }
                        }
                        break;

                    case Key.Right:
                        richting = "rechts";

                        // Vind de rij van de speler
                        row = tempDoolhof[VindSpeler()];

                        // Vind de positie van de speler
                        spelerRow = VindSpeler();
                        positieSpeler = row.IndexOf("@");

                        // Vind de nieuwe positie
                        if (row[positieSpeler + 1].Equals(Convert.ToChar(" ")) || row[positieSpeler + 1].Equals(Convert.ToChar("x")))
                        {
                            char[] temp = row.ToCharArray();
                            temp[positieSpeler + 1] = Convert.ToChar("@");
                            temp[positieSpeler] = Convert.ToChar(" ");

                            tempDoolhof[VindSpeler()] = new string(temp);
                        }

                        // Staat er een doos?
                        if (row[positieSpeler + 1].Equals(Convert.ToChar("o")))
                        {
                            // Kan de doos bewegen?
                            if (row[positieSpeler + 2].Equals(Convert.ToChar(" ")) || row[positieSpeler + 2].Equals(Convert.ToChar("x")))
                            {
                                // Beweeg doos
                                char[] temp = row.ToCharArray();
                                temp[positieSpeler + 2] = Convert.ToChar("o");
                                temp[positieSpeler + 1] = Convert.ToChar("@");
                                temp[positieSpeler] = Convert.ToChar(" ");

                                tempDoolhof[VindSpeler()] = new string(temp);
                            }
                        }

                        break;

                    case Key.Up:
                        richting = "boven";

                        // Vind de rij van de speler
                        row = tempDoolhof[VindSpeler()];
                        spelerRow = VindSpeler();
                        verticalRow = tempDoolhof[spelerRow - 1];

                        // Vind de positie van de speler
                        positieSpeler = row.IndexOf("@");

                        // Vind de nieuwe positie
                        if (verticalRow[positieSpeler].Equals(Convert.ToChar(" ")) || verticalRow[positieSpeler].Equals(Convert.ToChar("x")))
                        {
                            // Verander in bovenste rij
                            char[] temp = verticalRow.ToCharArray();
                            temp[positieSpeler] = Convert.ToChar("@");
                            tempDoolhof[spelerRow - 1] = new string(temp);

                            // Verander in onderste rij
                            char[] temp2 = row.ToCharArray();
                            temp2[positieSpeler] = Convert.ToChar(" ");
                            tempDoolhof[spelerRow] = new string(temp2);
                        }

                        // Staat er een doos?
                        if (verticalRow[positieSpeler].Equals(Convert.ToChar("o")))
                        {
                            if ((spelerRow - 2) >= 0)// Voorkom out of bounds
                            {
                                secondVerticalRow = tempDoolhof[spelerRow - 2];

                                // Kan de doos bewegen?
                                if (secondVerticalRow[positieSpeler].Equals(Convert.ToChar(" ")) || secondVerticalRow[positieSpeler].Equals(Convert.ToChar("x")))
                                {
                                    // Beweeg doos

                                    // Verander in bovenste rij
                                    char[] temp = secondVerticalRow.ToCharArray();
                                    temp[positieSpeler] = Convert.ToChar("o");
                                    tempDoolhof[spelerRow - 2] = new string(temp);

                                    // Verander in middelste rij
                                    char[] temp2 = verticalRow.ToCharArray();
                                    temp2[positieSpeler] = Convert.ToChar("@");
                                    tempDoolhof[spelerRow - 1] = new string(temp2);

                                    // Verander in onderste rij
                                    char[] temp3 = row.ToCharArray();
                                    temp3[positieSpeler] = Convert.ToChar(" ");
                                    tempDoolhof[spelerRow] = new string(temp3);
                                }
                            }
                        }

                        break;

                    case Key.Down:
                        richting = "beneden";

                        // Vind de rij van de speler
                        row = tempDoolhof[VindSpeler()];
                        spelerRow = VindSpeler();
                        verticalRow = tempDoolhof[spelerRow + 1];

                        // Vind de positie van de
                        positieSpeler = row.IndexOf("@");

                        // Vind de nieuwe positie
                        if (verticalRow[positieSpeler].Equals(Convert.ToChar(" ")) || verticalRow[positieSpeler].Equals(Convert.ToChar("x")))
                        {
                            // Verander in bovenste rij
                            char[] temp = row.ToCharArray();
                            temp[positieSpeler] = Convert.ToChar(" ");
                            tempDoolhof[spelerRow] = new string(temp);

                            // Verander in onderste rij
                            char[] temp2 = verticalRow.ToCharArray();
                            temp2[positieSpeler] = Convert.ToChar("@");
                            tempDoolhof[spelerRow + 1] = new string(temp2);
                        }

                        // Staat er een doos?
                        if (verticalRow[positieSpeler].Equals(Convert.ToChar("o")))
                        {
                            if ((spelerRow + 2) <= tempDoolhof.Count)// Voorkom out of bounds
                            {
                                secondVerticalRow = tempDoolhof[spelerRow + 2];

                                // Kan de doos bewegen?
                                if (secondVerticalRow[positieSpeler].Equals(Convert.ToChar(" ")) || secondVerticalRow[positieSpeler].Equals(Convert.ToChar("x")))
                                {
                                    // Beweeg doos

                                    // Verander in onderste rij
                                    char[] temp = secondVerticalRow.ToCharArray();
                                    temp[positieSpeler] = Convert.ToChar("o");
                                    tempDoolhof[spelerRow + 2] = new string(temp);

                                    // Verander in middelste rij
                                    char[] temp2 = verticalRow.ToCharArray();
                                    temp2[positieSpeler] = Convert.ToChar("@");
                                    tempDoolhof[spelerRow + 1] = new string(temp2);

                                    // Verander in onderste rij
                                    char[] temp3 = row.ToCharArray();
                                    temp3[positieSpeler] = Convert.ToChar(" ");
                                    tempDoolhof[spelerRow] = new string(temp3);
                                }

                            }
                        }

                        break;

                    default:
                        return;
                }

                // Update doolhof
                doolhof = tempDoolhof;

                // Refresh TopBord
                this.SpeelBord.Children.Clear();
                TopBord topBord = new TopBord(doolhof, richting);
                this.SpeelBord.Children.Add(topBord.toonGrid());

                // Zet erbij
                _zetten++;
                aantalZetten.Content = ("Zetten: " + Convert.ToString(_zetten));

                // Heeft Gewonnen?
                HeeftGewonnen();
            }
        }