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 }