Étape 4 : ajouter la méthode CheckTheAnswer()
Votre questionnaire doit vérifier si l'utilisateur répond correctement.Heureusement, il est facile d'écrire des méthodes chargées d'effectuer des calculs simples (telles que la méthode CheckTheAnswer()).
[!REMARQUE]
Si vous programmez en Visual Basic, notez que vous devez utiliser le mot clé Function au lieu du mot clé Sub habituel, étant donné que cette méthode retourne une valeur.En effet : contrairement aux fonctions, les Subs ne retournent aucune valeur.
Pour ajouter la méthode CheckTheAnswer()
Ajoutez la méthode CheckTheAnswer(), qui ajoute addend1 et addend2 et vérifie si la somme est égale à la valeur dans le contrôle de somme (sum) NumericUpDown.Si la somme est égale, la méthode retourne la valeur True; sinon, elle retourne la valeur False.Votre code doit ressembler à ce qui suit.
''' <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; }
Votre programme doit appeler cette méthode pour vérifier si l'utilisateur a répondu correctement.Pour ce faire, procédez à un ajout à votre instruction if else.L'instruction se présente comme suit.
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 }
Ensuite, modifiez le gestionnaire d'événements Tick de la minuterie pour vérifier la réponse.Le nouveau gestionnaire d'événements chargé de contrôler la réponse doit inclure les éléments suivants.
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; } }
Maintenant, si le gestionnaire d'événements de la minuterie identifie que l'utilisateur a répondu correctement, il arrête la minuterie, affiche un message de félicitations et rend le bouton Démarrer à nouveau disponible.
Enregistrez et exécutez votre programme.Démarrez le jeu et tapez la réponse correcte au problème d'addition.
[!REMARQUE]
En tapant votre réponse, vous remarquerez éventuellement qu'il y a un problème avec le contrôle NumericUpDown.Si vous commencez à taper sans sélectionner la réponse entière, le zéro reste affiché et vous devez le supprimer manuellement.Vous corrigerez ce problème plus tard dans ce didacticiel.
Lorsque vous tapez la réponse correcte, la boîte de message doit s'ouvrir, le bouton Démarrer doit être disponible et la minuterie doit s'arrêter.Cliquez à nouveau sur le bouton Démarrer et vérifiez que ces opérations ont bien lieu.
Pour continuer ou examiner
Pour passer à l'étape suivante du didacticiel, consultez Étape 5 : ajouter des gestionnaires d'événements Enter pour les contrôles NumericUpDown.
Pour revenir à l'étape précédente du didacticiel, consultez Étape 3 : ajouter un temporisateur.