/// <summary>
        /// Restart het spel met dezelfde instellingen en namen als het vorig spel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ButtonSpeelOpnieuw_Click(object sender, EventArgs e)
        {
            this.pictureBoxSpeelOpnieuw.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("SpeelOpnieuwButtonEndgame2D");
            await Task.Delay(300);

            this.pictureBoxSpeelOpnieuw.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("SpeelOpnieuwButtonEndgame");
            if (BaseGame.Gamemode == 2 && GameMultiplayerOnline.Reset())
            {
                return;
            }
            this.Close();
            this.Dispose();
            GC.Collect();
            BaseGame.Reset();
            if (BaseGame.Gamemode == 0)
            {
                GameSingleplayer.Start(BaseGame.Height, BaseGame.Width, BaseGame.Naam1);
            }
            else if (BaseGame.Gamemode == 1)
            {
                GameMultiplayerLocal.Start(BaseGame.Height, BaseGame.Width, BaseGame.Naam1, BaseGame.Naam2);
            }
            else if (BaseGame.Gamemode == 2)
            {
                GameMultiplayerOnline.Reset2();
            }
        }
Exemple #2
0
 /// <summary>
 /// reset het spel
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void restartToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (BaseGame.Gamemode == 2 && GameMultiplayerOnline.Reset())
     {
         return;
     }
     BaseGame.Reset();
     BaseGame.ResetVeld();
 }
Exemple #3
0
        /// <summary>
        /// reset het spel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Buton_Reset_Click(object sender, EventArgs e)
        {
            this.PictureBox_Reset.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("ResetButtonBlauwSpeelveld2D");
            await Task.Delay(300);

            this.PictureBox_Reset.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("ResetButtonBlauwSpeelveld");
            if (BaseGame.Gamemode == 2 && GameMultiplayerOnline.Reset())
            {
                return;
            }
            BaseGame.Reset();
            BaseGame.ResetVeld();
        }
Exemple #4
0
 /// <summary>
 /// Deze methode wisslet de speler die ann beurt is wanneer hij word gecalled.
 /// </summary>
 public static void VolgendeBeurt()
 {
     if (Gamemode == 0)
     {
         GameSingleplayer.VolgendeBeurt();
     }
     else if (Gamemode == 1)
     {
         GameMultiplayerLocal.VolgendeBeurt();
     }
     else if (Gamemode == 2)
     {
         GameMultiplayerOnline.VolgendeBeurt();
     }
 }
Exemple #5
0
 /// <summary>
 /// redirect naar de exit game methode van de betreffende gamemode.
 /// </summary>
 public static void Exitgame()
 {
     Geluid.GameOver();
     if (Gamemode == 0)
     {
         GameSingleplayer.Exit();
     }
     else if (Gamemode == 1)
     {
         GameMultiplayerLocal.Exit();
     }
     else if (Gamemode == 2)
     {
         GameMultiplayerOnline.Exit();
     }
 }
Exemple #6
0
 /// <summary>
 /// redirect naar de end game van de betreffende gamemode en slaat highscores op.
 /// </summary>
 public static void Endgame()
 {
     Geluid.GameOver();
     BaseGame.GameResultatenOpslaan();
     if (Gamemode == 0)
     {
         GameSingleplayer.End();
     }
     else if (Gamemode == 1)
     {
         GameMultiplayerLocal.End();
     }
     else if (Gamemode == 2)
     {
         GameMultiplayerOnline.End();
     }
 }
        /// <summary>
        /// Opened het de startgame form zodat je een nieuw spel kunt doen met andere instellingen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ButtonInstellingen_Click(object sender, EventArgs e)
        {
            this.pictureBoxInstellingen.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("InstellingenButtonBlauwEndgame2D");
            await Task.Delay(300);

            this.pictureBoxInstellingen.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("InstellingenButtonBlauwEndgame");
            if (BaseGame.Gamemode == 2)
            {
                GameMultiplayerOnline.Disconnect();
            }
            this.Close();
            this.Dispose();
            GC.Collect();
            BaseGame.Reset();
            FormStartgame startgame = new FormStartgame();

            startgame.ShowDialog();
        }
Exemple #8
0
        /// <summary>
        /// Deze methode draait kaarten terug wanneer er een verkeerd paar is omgedraaid met een delay van 2 seconden.
        /// </summary>
        public static async void DraaiKaartenTerug()
        {
            Terugdraai = true;
            Tijdbeurt  = 10; // reset timer
            await Task.Delay(2000);

            try {
                ZetOmgedraaid(Kaart1x, Kaart1y, false);
                ZetOmgedraaid(Kaart2x, Kaart2y, false);
                Kaartcounter = 0;
                Terugdraai   = false;
                Render();

                if (Gamemode == 2)
                {
                    GameMultiplayerOnline.KlaarVoorVolgendeKlikkaart();
                }
            } catch { };
        }
Exemple #9
0
        /// <summary>
        /// Deze methode word gecalled wanneer er een kaart op het speelveld word aangeklikt.
        /// Eerst word gechecked of de aangeklikte kaart al is omgedraaid of dat er al 2 kaarten zijn omgedraaid deze beurt, als dit zo is dan word de methode stopgezet.
        /// vervolgens word de kaart omgedraaid en word de counter die bijhoud hoeveel kaarten zijn omgedraaid deze beurt verhoogd.
        /// Als dit de tweede kaart is die word aangeklikt dan word gechecked of ze gelijk zijn. zo ja dan word de score van de speler die aan beurt is verhoogd, zo niet dan word de methode zetomgedraaid gecalled om ze weer terug te draaien.
        /// ook word dan gecheckt of dit het laatst omgedraaide paar is. zo ja dan word de endgame methode gecalled.
        /// vervolgens word de beurt aaan de andere speler gegeven mits er een multiplayer spel word gespeeld
        /// </summary>
        /// <param name="x"> x coordinaat van aangeklikte coordinaat</param>
        /// <param name="y"> y coordinaat van aangeklikte kaart</param>
        /// <param name="Negeerkaartklik"> word op false gezet wanner de ander speler aan de beurt is in een online multiplayer spel. voorkomt dat de speler die niet aan beurt is kaarten kan omdraaien.</param>
        public static void KaartKlik(int x, int y, bool Negeerkaartklik = true)   //word op false gezet als andere speler aan beurt in is GameMultiplayerOnline spel
        {
            if (Speelveld_omgedraaid[x, y] == true)
            {
                return;                                     //Negeer klikken op kaart als de kaart al omgedraait is
            }
            if (Kaartcounter == 2)
            {
                return;                    //Negeer als er al 2 kaarten omgedraait zijn
            }
            if (Gamemode == 2 && Negeerkaartklik)
            {
                if (GameMultiplayerOnline.KlikKaart(x, y))
                {
                    return;
                }
            }

            //Keer kaart om
            ZetOmgedraaid(x, y, true);


            Kaartcounter++;
            if (Kaartcounter == 1)
            {
                //Sla eerste kaart op
                Geluid.KaartKlik();
                Kaart1x = x;
                Kaart1y = y;
            }
            else if (Kaartcounter == 2)
            {
                //Verhoog aantal zetten
                if (SpelerAanBeurt == 1)
                {
                    Zetten1++;
                }
                if (SpelerAanBeurt == 2)
                {
                    Zetten2++;
                }

                //Sla tweede kaart op
                Kaart2x = x;
                Kaart2y = y;

                //Kijk of kaarten gelijk zijn
                if (Speelveld_types[Kaart1x, Kaart1y] == Speelveld_types[Kaart2x, Kaart2y])
                {
                    Geluid.KaartGelijk();
                    if (SpelerAanBeurt == 1)
                    {
                        Score1++;                       //Voeg 1 bij de score toe
                    }
                    if (SpelerAanBeurt == 2)
                    {
                        Score2++;
                    }
                    Kaartcounter = 0;
                    Tijdbeurt    = 10; //reset timer

                    if (Checkwin())    //Check voor win
                    {
                        Render();
                        Endgame();
                        return;
                    }
                }
                else
                {
                    Geluid.KaartKlik();
                    DraaiKaartenTerug(); //Draai beide kaarten terug om
                }
                Render();
                if (Negeerkaartklik)
                {
                    VolgendeBeurt();
                }
            }
        }
        /// <summary>
        /// zet alle ingevoerde data in variabelen. en called de startgame methode van de gekozen gamemode.
        /// vervolgens word de form geclosed en gedisposed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void pictureBoxStartmenuStart_Click_1(object sender, EventArgs e)
        {
            this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("StartButtonGroen2D");
            await Task.Delay(300);

            this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("StartButtonGroen");
            Geluid.Player.Stop();
            Geluid.Player.Dispose();
            GC.Collect();
            int h, w;

            if (comboGametype.Text == "Kies spelmodus")
            {
                MessageBox.Show("Voer een spelmodus in", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (comboGametype.Text != "Join Multiplayer")
            {
                switch (comboSpelgrootte.Text)
                {
                //vooet grote van het speelveld in
                case "2x2":
                    h = 2;
                    w = 2;
                    break;

                case "2x3":
                    h = 2;
                    w = 3;
                    break;

                case "2x4":
                    h = 2;
                    w = 4;
                    break;

                case "3x4":
                    h = 3;
                    w = 4;
                    break;

                case "4x4":
                    h = 4;
                    w = 4;
                    break;

                default:
                    MessageBox.Show("Voer de grootte van het speelveld in", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            else
            {
                h = 0;
                w = 0;
            }
            //voert naam in en called stargame
            switch (comboGametype.Text)
            {
            case "Singleplayer":
                string naam = textboxNaam1.Text;
                if (naam == null || naam.Length == 0)
                {
                    naam = "Speler 1";
                }
                GameSingleplayer.Start(h, w, naam);
                this.Close();
                this.Dispose();
                break;

            case "Local Multiplayer":
                string naam1 = textboxNaam1.Text;
                if (naam1 == null || naam1.Length == 0)
                {
                    naam1 = "Speler 1";
                }
                string naam2 = textboxNaam2.Text;
                if (naam2 == null || naam2.Length == 0)
                {
                    naam2 = "Speler 2";
                }
                GameMultiplayerLocal.Start(h, w, naam1, naam2);
                this.Close();
                this.Dispose();
                break;

            case "Host Multiplayer":
                pictureBoxStart.BackgroundImage = this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("VerbindenButtonGroen");
                pictureBoxStart.Enabled         = false;

                string naams = textboxNaam1.Text;
                if (naams == null || naams.Length == 0)
                {
                    naams = "Speler 1";
                }
                int port = (int)textboxPort.Value;

                mpworker         = new BackgroundWorker();
                mpworker.DoWork += delegate(object o, DoWorkEventArgs args) {
                    args.Result = ManagerServer.Server(port);
                };
                mpworker.RunWorkerCompleted += delegate(object o, RunWorkerCompletedEventArgs args) {
                    if ((bool)args.Result)
                    {
                        GameMultiplayerOnline.Start(h, w, naams, true);
                        this.Close();
                        this.Dispose();
                    }
                    this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("StartButtonGroen");
                };
                mpworker.RunWorkerAsync();
                //Errorbox wordt weergegeven door Server method
                break;


            case "Join Multiplayer":
                pictureBoxStart.BackgroundImage = this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("VerbindenButtonGroen");
                await Task.Delay(10);

                string naamt = textboxNaam1.Text;
                if (naamt == null || naamt.Length == 0)
                {
                    naamt = "Speler 2";
                }
                string ip    = textboxIp.Text;
                int    port2 = (int)textboxPort.Value;
                if (ManagerClient.Client(ip, port2))
                {
                    GameMultiplayerOnline.Start(h, w, naamt, false);
                    this.Close();
                    this.Dispose();
                }

                this.pictureBoxStart.BackgroundImage = (Bitmap)Properties.Resources.ResourceManager.GetObject("StartButtonGroen");
                //Errorbox wordt weergegeven doe Client method

                break;

            case "Kies spelmodus":
                MessageBox.Show("Voer een spelmodus in", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }