Ejemplo n.º 1
0
        void client_OpzetFaseCompleted(object sender, ServiceReference1.OpzetFaseCompletedEventArgs e)
        {
            if (e.Result == true && hulpTegel2.RandomNummer == 1)              //Als het de opzetfase is en de tegel waar we op klikken heeft 1 vis.
            {
                AddPinguin(hulpTegel2.Row, hulpTegel2.Column, kleurVanSpeler); //Voeg pinguin lokaal toe.

                //Voeg pinguin in database toe.
                ServiceReference1.DTOPion pion = new ServiceReference1.DTOPion();
                pion.Column      = hulpTegel2.Column;
                pion.Row         = hulpTegel2.Row;
                pion.IjsschotsID = 0;
                pion.SpelerID    = tellerSpelerID;
                pion.LobbyID     = tellerLobbyID;
                ServiceReference1.Service1Client client2 = new ServiceReference1.Service1Client();
                client2.AddPionToGameSteCompleted += client2_AddPionToGameSteCompleted;
                client2.AddPionToGameSteAsync(tellerLobbyID, pion, kleurAanDeBeurt);
                tellerAantalPinguins++;                              //Zien wanneer alle pinguins geplaatst zijn.
            }
            else if (e.Result == false && verplaatsingsface == true) //Als we tijdens het spel zijn en de pinguin mag verplaatst worden.
            {
                //Lokaal voor onmiddelijke weergave.
                VorigeTegel.Visibility    = Visibility.Collapsed;                    //Laat de tegel van waar de pinguin kwam verdwijnen.
                hulpSpeelstuk2.Visibility = Visibility.Collapsed;                    //Laat ook de pinguin op die tegel verdwijnen.
                AddPinguin(hulpTegel2.Row, hulpTegel2.Column, hulpSpeelstuk2.Kleur); //Plaats de pinguin op zijn nieuwe lokatie.

                //In de datebase voor iedereen.
                foreach (var item in gameState.AllPion)
                {
                    if (item.Column == hulpSpeelstuk2.Column && item.Row == hulpSpeelstuk2.Row)
                    {
                        //Geef alle pinguins de juist coördinaten mee.
                        item.Column = hulpTegel2.Column;
                        item.Row    = hulpTegel2.Row;
                    }
                }
                foreach (var item in gameState.AllIjsschots)
                {
                    if (item.Column == (Convert.ToInt32(VorigeTegel.Column / 2)) && item.Row == VorigeTegel.Row)
                    {
                        item.Visibility = "Collapsed"; //Laat de tegel van waar de pinguin kwam verdwijnen.
                    }
                }
                foreach (var item in gameState.AllSpeler)
                {
                    if (item.Kleur == kleurVanSpeler)
                    {
                        item.Punten = eigenPunten;
                    }
                }


                //Udate de gamestate voor iedereen.
                ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                client.UpdateGameStateCompleted += client_UpdateGameStateCompleted;
                client.UpdateGameStateAsync(tellerLobbyID, gameState);

                verplaatsingsface = false; //de speler heeft gedaan met spelen.
            }
        }
Ejemplo n.º 2
0
        void client_GetGameStateCompleted(object sender, ServiceReference1.GetGameStateCompletedEventArgs e)
        {
            gameState = e.Result; //Get de game state.
            #region Update Map
            int        tellerRow      = 0;
            int        tellerColumn   = 0;
            int        evenOfOneven   = 0; //Deze variabele dient voor te weten als de tegels op de even of oneven kollomen moeten komen.
            Visibility hulpVisibility = Visibility.Visible;

            foreach (var item in gameState.AllIjsschots)
            {
                //De tegels moeten iedere rij in de helft van de vorige tegel beginnen.
                tellerRow = item.Row;
                if (tellerRow % 2 == 0)
                {
                    evenOfOneven = 0;
                }
                else
                {
                    evenOfOneven = 1;
                }
                tellerColumn = item.Column * 2 + evenOfOneven;

                //Gaat alle tegels af en zet deze zichtbaar of niet, naargelang de situatie is veranderd of niet.
                foreach (var tegel in SpelBord.Children)
                {
                    if (tegel is SpelTile)
                    {
                        SpelTile hulpTegel = tegel as SpelTile;
                        if (hulpTegel.Row == tellerRow && hulpTegel.Column == tellerColumn)
                        {
                            if (item.Visibility == "Visible")
                            {
                                hulpVisibility = Visibility.Visible;
                            }
                            else
                            {
                                hulpVisibility = Visibility.Collapsed;
                            }
                            hulpTegel.Visibility = hulpVisibility;
                            break;
                        }
                    }
                }
            }
            #endregion
            #region Update Pion
            tellerRow    = 0;
            tellerColumn = 0;
            bool bestaat = false; //Voor te zien als de pinguin bestaat.
            tellerAantalPinguins = 0;
            foreach (var pinguin in SpelBord.Children)
            {
                if (pinguin is SpelSpeelstuk)
                {
                    pinguin.Visibility = Visibility.Collapsed;
                    tellerAantalPinguins++; //Aantal pinguins tellen.
                }
            }
            foreach (var item in gameState.AllPion)
            {
                tellerRow    = item.Row;    //Welke row het is.
                tellerColumn = item.Column; //Welke column het is.
                bestaat      = false;
                foreach (var pinguin in SpelBord.Children)
                {
                    if (pinguin is SpelSpeelstuk)
                    {
                        SpelSpeelstuk hulpPinguin = pinguin as SpelSpeelstuk;
                        if (hulpPinguin.Column == tellerColumn && hulpPinguin.Row == tellerRow) //Zien als de pinguin is blijven staan.
                        {
                            hulpPinguin.Visibility = Visibility.Visible;                        //Laat pinguin staan.
                            bestaat = true;
                            break;
                        }
                    }
                }
                if (bestaat == false)                                   //Indien pinguin niet bestaat.
                {
                    AddPinguin(item.Row, item.Column, kleurAanDeBeurt); //Voeg nieuwe pinguin toe.
                }
            }
            #endregion
            #region Update Kleur
            kleurAanDeBeurt = gameState.KleurSpeler; //Achterhaal de kleur van de speler die aan de beurt is.
            #endregion
            #region Update Info
            if (kleurVanSpeler == kleurAanDeBeurt)
            {
                InfoBar.Text = "Het is jouw beurt. " + kleurVanSpeler + " is je kleur.";
            }
            else
            {
                InfoBar.Text = "Wachten op je beurt.";
            }
            string text = "Score: ";
            foreach (var item in gameState.AllSpeler)
            {
                text += item.NickName + ": " + item.Punten + "\t\t";
            }
            Punten.Text = text;
            #endregion
            #region Update Speler status
            foreach (var item in gameState.AllSpeler)
            {
                if (kanNogSpelen > 30 && item.Kleur == kleurVanSpeler)
                {
                    item.IsReady = "Out";
                    ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                    client.UpdateGameStateCompleted += client_UpdateGameStateCompleted;
                    client.UpdateGameStateAsync(tellerLobbyID, gameState);
                }
            }
            #endregion
            #region Update Game Status
            ServiceReference1.Service1Client client2 = new ServiceReference1.Service1Client();
            client2.LetGameBeginCompleted += client_LetGameBeginCompleted; //check als spel ten einde is.
            client2.LetGameBeginAsync(tellerLobbyID);
            if (status == "Zwart")
            {
                newTimer.Stop();
                string gameOverString = "Game over!";
                string hulpString     = "";
                int    stopFor        = 0;
                for (int i = 200; i > 0; i--)
                {
                    foreach (var item in gameState.AllSpeler)
                    {
                        if (item.Punten == i)
                        {
                            hulpString = "\n" + item.NickName + ": " + item.Punten;
                            stopFor++;
                        }
                    }
                    gameOverString += hulpString;
                    if (stopFor == aantalSpelers)
                    {
                        break;
                    }
                }
                MessageBox.Show(gameOverString);
                if (hostID == tellerSpelerID)
                {
                    client2.EndGameCompleted += client2_EndGameCompleted;
                    client2.EndGameAsync(tellerLobbyID);
                }
                NavigationService.Navigate(new Uri("/Hoofdmenu.xaml", UriKind.Relative)); //Ga naar het hoofdmenu.
            }
            #endregion
        }