Krok 4: Dodaj metodę CheckTheAnswer()
Quiz obejmuje musi sprawdzić, czy użytkownik odpowiada poprawnie.Na szczęście, pisanie metod, które wykonać proste obliczenia, takie jak CheckTheAnswer() metodę, nie jest trudne.
[!UWAGA]
Dla tych, którzy są po w języku Visual Basic, warto zauważyć, że ponieważ metoda ta zwraca wartość, zamiast zwykłego Sub słowa kluczowego, trzeba korzystać z Function słowa kluczowego zamiast.Jest to naprawdę proste: Podprocedura nie zwraca wartości, ale funkcje działają.
Aby dodać metodę CheckTheAnswer()
Dodaj CheckTheAnswer() metodę, która dodaje addend1 i addend2 i sprawdza, czy suma jest równa wartości w sumie NumericUpDown kontroli.Jeżeli suma jest równa, metoda zwraca wartość true; w przeciwnym razie zwraca wartość false.Kod powinien wyglądać następująco.
''' <summary> ''' Check the answer to see if the user got everything right. ''' </summary> ''' <returns>True if the answer's correct, false otherwise.</returns> ''' <remarks></remarks> Public Function CheckTheAnswer() As Boolean If addend1 + addend2 = sum.Value Then Return True Else Return False End If End Function
/// <summary> /// Check the answer to see if the user got everything right. /// </summary> /// <returns>True if the answer's correct, false otherwise.</returns> private bool CheckTheAnswer() { if (addend1 + addend2 == sum.Value) return true; else return false; }
Program musi wywołać tę metodę, aby sprawdzić, czy użytkownik odpowiedział poprawnie.Aby to zrobić, dodając do sieci if else instrukcji.Instrukcja wygląda następująco.
If CheckTheAnswer() Then ' statements that will get executed ' if the answer is correct ElseIf timeLeft > 0 Then ' statements that will get executed ' if there's still time left on the timer Else ' statements that will get executed if the timer ran out End If
if (CheckTheAnswer()) { // statements that will get executed // if the answer is correct } else if (timeLeft > 0) { // statements that will get executed // if there's still time left on the timer } else { // statements that will get executed if the timer ran out }
Następnie można modyfikować obsługi zdarzeń podziałki czasomierz, sprawdzić odpowiedź.Nowy program obsługi zdarzeń sprawdzenia odpowiedzi powinna zawierać następujące.
Private Sub Timer1_Tick() Handles Timer1.Tick If CheckTheAnswer() Then ' If the user got the answer right, stop the timer ' and show a MessageBox. Timer1.Stop() MessageBox.Show("You got all of the answers right!", "Congratulations!") startButton.Enabled = True ElseIf timeLeft > 0 Then ' Decrease the time left by one second and display ' the new time left by updating the Time Left label. timeLeft -= 1 timeLabel.Text = timeLeft & " seconds" Else ' If the user ran out of time, stop the timer, show ' a MessageBox, and fill in the answers. Timer1.Stop() timeLabel.Text = "Time's up!" MessageBox.Show("You didn't finish in time.", "Sorry") sum.Value = addend1 + addend2 startButton.Enabled = True End If End Sub
private void timer1_Tick(object sender, EventArgs e) { if (CheckTheAnswer()) { // If the user got the answer right, stop the timer // and show a MessageBox. timer1.Stop(); MessageBox.Show("You got all the answers right!", "Congratulations"); startButton.Enabled = true; } else if (timeLeft > 0) { // Decrease the time left by one second and display // the new time left by updating the Time Left label. timeLeft--; timeLabel.Text = timeLeft + " seconds"; } else { // If the user ran out of time, stop the timer, show // a MessageBox, and fill in the answers. timer1.Stop(); timeLabel.Text = "Time's up!"; MessageBox.Show("You didn't finish in time.", "Sorry"); sum.Value = addend1 + addend2; startButton.Enabled = true; } }
Teraz Jeśli obsługi zdarzenia timer stwierdzi, że użytkownik prawidłowo odbierane, obsługi zdarzenia timer zatrzymuje, pokazuje komunikat z gratulacjami i sprawia, że uruchomić przycisk ponownie dostępne.
Zapisz i uruchom program.Grę rozpoczyna się i wpisz poprawną odpowiedź na dodanie problem.
[!UWAGA]
Po wpisaniu odpowiedzi, można zauważyć coś nieparzysta o NumericUpDown kontroli.Jeżeli zaczniesz pisać, bez zaznaczania całego odpowiedzi, pozostaje zero i trzeba ją usunąć ręcznie.Poprawi to później w tym samouczku.
Po wpisaniu poprawnej odpowiedzi, należy otworzyć okno komunikatu, uruchomić przycisk powinna być dostępna i należy zatrzymać zegar.Kliknij przycisk uruchomić ponownie przycisk i pamiętaj, że tak się stanie.
Aby kontynuować, lub przejrzeć
Aby przejść do następnego kroku samouczek, zobacz Krok 5: Dodawanie wprowadzić programy obsługi zdarzeń dla formantów NumericUpDown.
Aby powrócić do poprzedniego kroku samouczek, zobacz Krok 3: Dodawanie minutnik.