// Тајмер private void timer_Tick(object sender, EventArgs e) { Single AngleS = seconds * -6; // Пресметан агол за ротација на секундарката backBox.Image = back; // Се ажурира сликата на позадината // Ажурирање на секундарката backBox.Controls.Add(secondBox); dotBox.Location = new Point(0, 0); secondBox.Image = Clock.rotateImage(second, AngleS); // Ажурирање на централната точка secondBox.Controls.Add(dotBox); secondBox.Location = new Point(0, 0); dotBox.Image = dot; // Доколку времето е изминато if ((seconds == 0) && (minutes == 0)) { timer.Stop(); timerFinished = true; // И не е усшено завршена играта // Се појавува Batter Luck Next time if (matchCounter != 18) { BlurFunctions.blur(panel1, pb, bmp); BetterLuck B = new BetterLuck(); B.ShowDialog(); BlurFunctions.removeBlur(pb); B.Dispose(); } btnStart.Enabled = true; } else if (seconds == 0) // Ако секундите се 0, се ставват повторно на 60, а се одзема минута { seconds = 60; minutes--; } // Се додека не е завршен тајмерот се намалуваат секундите if (timerFinished != true) { seconds--; } // Логика за поставуање на текст за попрегледно читање на времето if (seconds < 10) { time.Text = "0" + Convert.ToString(minutes) + " : " + "0" + Convert.ToString(seconds); } else { time.Text = "0" + Convert.ToString(minutes) + " : " + Convert.ToString(seconds); } }
// Кога корисникот сака да излезе private void btnExit_Click(object sender, EventArgs e) { timer.Stop(); // Се стопира тајмерот на играта QuitForm quitFrm = new QuitForm(); // Се креира инстанца од Quit Form BlurFunctions.blur(panel1, pb, bmp); // Се замагчлува позадината quitFrm.ShowDialog(); // Се prompt играчот со Quit форма BlurFunctions.removeBlur(pb); // Се одмаглува позадината quitFrm.Dispose(); // Се ослободуваме од ресурсите зафатени од оваа Quit форма timer.Start(); // Тајмерот си продолжува }
// Доколку играчот сака да ја сопре играта пред да заврши времето без да излезе од самата апликацоја private void btnStop_Click(object sender, EventArgs e) { BlurFunctions.blur(panel1, pb, bmp); timer.Stop(); StopForm S = new StopForm(); S.ShowDialog(); BlurFunctions.removeBlur(pb); // Доколку не сака да ја сопре играта if (S.stop == false) { timer.Start(); pnlCards.Enabled = true; } // Доколку ја споре играта else { pnlCards.Enabled = false; btnStart.Enabled = true; } S.Dispose(); }
// Функција за споредба на отворени картици private void compareCards(PictureBox card, PictureBox card2) { // Ако немаме отворено прва картица if (openCard1 == null) { openCard1 = card; } // Ако имаме отворено втора картица else if (openCard1 != null && openCard2 == null) { openCard2 = card; } // Кога се отоврени две if (openCard1 != null && openCard2 != null) { // Ако двете картици се совпаѓаат if (openCard1.Tag == openCard2.Tag) { openCard1 = null; openCard2 = null; card.Enabled = false; card2.Enabled = false; score += 10; matchCounter++; // Ако резултатот е поголем од претходмо if (User.getBestScore() <= score) { User.setBestScore(score); lblScore.Text = User.getBestScore().ToString(); } // Ако сите картици се отворени if (matchCounter == 18) { timer.Stop(); // Се запира тајмерот score += seconds * 10 + minutes * 100; // Се додаваат дополнитени поени lblScore.Text = User.getBestScore().ToString(); // Се прикажува на екран if (User.getBestScore() < score) { User.setBestScore(score); } // Ако имаме нов Best Score if (bestBefore < User.getBestScore()) { User.newHighScore = true; // Доколку играчот не е како guest се ажурира во Azure Cloud SQL DB резултатот if (User.getUser() != "guest") { Connection_and_Queries.updateHighScore(); } // Се покажува форма за добро сработено GoodJobForm goodJobForm = new GoodJobForm(); BlurFunctions.blur(panel1, pb, bmp); // Се замаглува позадината goodJobForm.ShowDialog(); // Се покажува BlurFunctions.removeBlur(pb); // Се трга замаглувањето goodJobForm.Dispose(); // Се ослободуваме од зафанатите ресурси btnStart.Enabled = true; } // Ако немаме подобар резултат од најдобриот else { // Се покажува друга верзија на добро сработено GoodJobForm goodJobForm = new GoodJobForm(); BlurFunctions.blur(panel1, pb, bmp); goodJobForm.ShowDialog(); BlurFunctions.removeBlur(pb); goodJobForm.Dispose(); btnStart.Enabled = true; } } } // Ако двете картици не се совпаѓаат else { pnlCards.Enabled = false; timerWrong.Start(); // Истите се задржуваат отворени мал временски период } } }