//Zodra de form geladen is dan... /// <summary> /// Eerst wordt er met een if-statement gecontroleerd of er 1 of 2 namen zijn doorgegeven. En worden de namen weergegeven/ wordt de naam weergegeven. /// Ook wordt de naam van speler1 vetgedrukt om aan te geven dat hij als eerste aan de beurt is. Hierna wordt met nog een if-statement de data van speler 2 /// niet weergegeven in het geval dat het spel in singleplayer modus is opgestart. Of juist wel in het geval dat het spel in multiplayer is opgestart. /// Daarna worden de methodes LoadImages en TimerTijd.Start aangeroepen om het speelveld in te vullen en de timer te starten. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void speelveld_Load_1(object sender, EventArgs e) { if (string.IsNullOrEmpty(NamenInvoeren.naam2)) { player1.Text = NaamInvoeren.naamP1; player2.Text = null; } else { player1.Text = null; player2.Text = null; player1.Text = NamenInvoeren.naam1; player1.Font = new Font(player1.Font, FontStyle.Bold); player2.Text = NamenInvoeren.naam2; } LoadImages(); TimerTijd.Start(); if (menu.ladenvansave == true) { laden(); } //Als er niet met 2 spelers gespeeld wordt, maak dan de labels van speler 2 onzichtbaar if (menu.multiplayergame == false) { setsp2.Visible = false; p2set.Visible = false; p2zetlabel.Visible = false; p2zet.Visible = false; ScoreP2.Visible = false; ScoreP2Num.Visible = false; } else if (menu.multiplayergame == true) { setsp2.Visible = true; p2set.Visible = true; p2zetlabel.Visible = true; p2zet.Visible = true; } }
/// <summary> /// De methode begint met een if-statement die zorgt dat je niet meer kaartjes kan omdraaien dan timer1 toelaat. Daarna komt er een stukje dat er voor zorgt dat als je op een picturebox klikt je de juiste informatie /// aan het programma doorgeeft. Hierna volgen weer een serie if-statements. Eerst wordt er gekeken of de picturebox waar op geklikt is wel data bevat (dus niet al is omgedraaid). Als de picturebox data bevat wordt /// deze in een aparte variabele opgeslagen en vervolgens met je tweede klik vergeleken. Als ze allebei hetzelfde zijn blijven ze staan en anders worden ze weer omgedraaid. Vervolgens wordt er gecontroleerd of er /// 1 of 2 spelers zijn. Als er maar 1 speler is word er 1 bij de variabele die het aantal zetten bijhoud. Bij 2 spelers wordt er eerst nog gecontroleerd of het de beurt van speler-1 of 2 is en wordt vervolgens hetzelfde /// gedaan als het 1 speler spel, maar dan voor de correcte speler die op dat moment aan de beurt is. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> //wat te doen als er geklikt word op 1 van de picture boxes private void pictureBox1_Click(object sender, EventArgs e) { if (timer1.Enabled == true) { return; } PictureBox pictureboxklik = sender as PictureBox; object O = Properties.Resources.ResourceManager.GetObject(pictureboxklik.AccessibleDescription); pictureboxklik.Image = (Image)O; if (pictureboxklik != null) { if (pictureboxklik == EersteKlik) { return; } if (EersteKlik == null) { EersteKlik = pictureboxklik; return; } else if (TweedeKlik == null) { TweedeKlik = pictureboxklik; if (menu.multiplayergame == true) //multiplayer { if (p1 == true) { if (EersteKlik.AccessibleDescription == TweedeKlik.AccessibleDescription) //een set voor p1 { scoreP1 = scoreP1 + 20; ScoreP1Num.Text = Convert.ToString(scoreP1); //bij een goede set + 20; setp1++; p1set.Text = Convert.ToString(setp1); } else { zetp1++; p1zet.Text = Convert.ToString(zetp1); p1 = false; p2 = true; player1.Font = new Font(player1.Font, FontStyle.Regular); player2.Font = new Font(player1.Font, FontStyle.Bold); scoreP1 = scoreP1 - 10; } } else if (p2 == true) { if (EersteKlik.AccessibleDescription == TweedeKlik.AccessibleDescription) //een set voor p2 { scoreP2 = scoreP2 + 20; ScoreP2Num.Text = Convert.ToString(scoreP2); setp2++; p2set.Text = Convert.ToString(setp2); } else { zetp2++; p2zet.Text = Convert.ToString(zetp2); p2 = false; p1 = true; player2.Font = new Font(player1.Font, FontStyle.Regular); player1.Font = new Font(player1.Font, FontStyle.Bold); scoreP2 = scoreP2 - 10; // - 10 punten bij geen set } } //multiplayer gewonnen melding if (setp1 + setp2 == 8) { TimerTijd.Stop(); //tijd stoppen als P1 of P2 gewonnen heeft. if (scoreP1 > scoreP2) //speler 1 gewonnen { //het opslaan van de highscore //opslaan van beide scores met de winnaar using (StreamWriter sw = new StreamWriter(@"highscore.txt", true)) { sw.WriteLine("Winnaar: " + NamenInvoeren.naam1 + ": " + scoreP1.ToString()); sw.WriteLine("Verloren: " + NamenInvoeren.naam2 + ": " + scoreP2.ToString()); } //order file leegmaken File.WriteAllText("order.txt", String.Empty); using (StreamWriter sw = new StreamWriter(@"score.txt", true)) { sw.WriteLine(NamenInvoeren.naam1 + " " + scoreP1.ToString()); //naam en score naar tekstbestand schrijven } //sorteren van hoog naar laag string[] scores = File.ReadAllLines("score.txt"); var orderedScores = scores.OrderByDescending(x => int.Parse(x.Split(' ')[1])); foreach (var score in orderedScores) { using (StreamWriter order = new StreamWriter(@"order.txt", true)) //gesorteerde inhoud naar order.txt schrijven { order.WriteLine(score); } } if (MessageBox.Show("Het spel is afgelopen, " + NamenInvoeren.naam1 + " heeft gewonnen, wil je opnieuw spelen? ", "Spel Afgelopen", MessageBoxButtons.YesNo) == DialogResult.Yes) { speelveld NewForm = new speelveld(); NewForm.Show(); Dispose(); } else //nee { // speelveld afsluiten this.Hide(); } } //speler 2 gewonnen if (scoreP2 > scoreP1) { //het opslaan van de highscore //opslaan van beide scores met de winnaar using (StreamWriter sw = new StreamWriter(@"highscore.txt", true)) { sw.WriteLine("Winnaar: " + NamenInvoeren.naam2 + ": " + scoreP2.ToString()); sw.WriteLine("Verloren: " + NamenInvoeren.naam1 + ": " + scoreP1.ToString()); } //order file leegmaken File.WriteAllText("order.txt", String.Empty); using (StreamWriter sw = new StreamWriter(@"score.txt", true)) { sw.WriteLine(NamenInvoeren.naam2 + " " + scoreP2.ToString()); //naam en score naar tekstbestand schrijven } //sorteren van hoog naar laag string[] scores = File.ReadAllLines("score.txt"); var orderedScores = scores.OrderByDescending(x => int.Parse(x.Split(' ')[1])); foreach (var score in orderedScores) { using (StreamWriter order = new StreamWriter(@"order.txt", true)) //gesorteerde inhoud naar order.txt schrijven { order.WriteLine(score); } } //score opgeslagen if (MessageBox.Show("Het spel is afgelopen, " + NamenInvoeren.naam2 + " heeft gewonnen, wil je opnieuw spelen? ", "Spel Afgelopen", MessageBoxButtons.YesNo) == DialogResult.Yes) { speelveld NewForm = new speelveld(); NewForm.Show(); Dispose(); } else //nee { // speelveld afsluiten this.Hide(); } } } } else { zetp1++; p1zet.Text = Convert.ToString(zetp1); } } //twee dezelfde plaatjes gedraaid houden if (EersteKlik.AccessibleDescription == TweedeKlik.AccessibleDescription) { if (menu.multiplayergame == false) //singleplayer { scoreP1 = scoreP1 + 20; ScoreP1Num.Text = Convert.ToString(scoreP1); setp1++; p1set.Text = Convert.ToString(setp1); //singeplayer gewonnen if (setp1 == 8) { TimerTijd.Stop(); //het opslaan van de highscore //opslaan naar tekstbestand met naam en score en wie gewonnen heeft. using (StreamWriter sw = new StreamWriter(@"highscore.txt", true)) { sw.WriteLine("Gewonnen: " + NaamInvoeren.naamP1 + ": " + scoreP1.ToString()); } //order file leegmaken File.WriteAllText("order.txt", String.Empty); using (StreamWriter sw = new StreamWriter(@"score.txt", true)) { sw.WriteLine(NaamInvoeren.naamP1 + " " + scoreP1.ToString()); //naam en score naar tekstbestand schrijven } //sorteren van hoog naar laag string[] scores = File.ReadAllLines("score.txt"); var orderedScores = scores.OrderByDescending(x => int.Parse(x.Split(' ')[1])); foreach (var score in orderedScores) { using (StreamWriter order = new StreamWriter(@"order.txt", true)) //gesorteerde inhoud naar order.txt schrijven { order.WriteLine(score); } } //score opgeslagen if (MessageBox.Show("Gefeliciteerd " + NaamInvoeren.naamP1 + ", je tijd was " + seconden.ToString() + " seconden. \nJe score was: " + scoreP1.ToString() + "\n" + "Wil je opnieuw spelen?", "Spel Afgelopen", MessageBoxButtons.YesNo) == DialogResult.Yes) { speelveld NewForm = new speelveld(); NewForm.Show(); Dispose(); } else //gebruiker klikt op "nee" { //speelveld afsluiten this.Close(); } } //einde singleplayer } EersteKlik.Enabled = false; TweedeKlik.Enabled = false; EersteKlik = null; TweedeKlik = null; } else if (menu.multiplayergame == false) { timer1.Start(); scoreP1 = scoreP1 - 10; } else { timer1.Start(); } } }