Étape 4 : ajouter la méthode CheckTheAnswer()Step 4: Add the CheckTheAnswer() method

Dans la quatrième partie de ce didacticiel, vous allez écrire une méthode, CheckTheAnswer(), permettant de déterminer si les réponses aux problèmes mathématiques sont correctes.In the fourth part of this tutorial, you'll write a method, CheckTheAnswer(), that determines whether the answers to the math problems are correct. Cette rubrique fait partie d'une série de didacticiels sur les concepts de codage de base.This topic is part of a tutorial series about basic coding concepts. Pour obtenir une vue d’ensemble du tutoriel, consultez Tutoriel 2 : créer un questionnaire mathématique chronométré.For an overview of the tutorial, see Tutorial 2: Create a timed math quiz.

Note

Si vous programmez en Visual Basic, vous utiliserez le mot clé Function à la place du mot clé Sub habituel, car cette méthode retourne une valeur.If you're following along in Visual Basic, you'll use the Function keyword instead of the usual Sub keyword because this method returns a value. En effet, contrairement aux procédures Function, les procédures Sub ne retournent aucune valeur.It's really that simple: a sub doesn't return a value, but a function does.

Pour vérifier si les réponses sont correctesTo verify whether the answers are correct

  1. Ajoutez la méthode CheckTheAnswer().Add the CheckTheAnswer() method.

    Quand cette méthode est appelée, elle ajoute les valeurs d’addend1 et d’addend2, puis compare le résultat à la valeur dans le contrôle NumericUpDown de somme.When this method is called, it adds the values of addend1 and addend2 and compares the result to the value in the sum NumericUpDown control. Si les valeurs sont égales, la méthode retourne la valeur true.If the values are equal, the method returns a value of true. Dans le cas contraire, la méthode retourne la valeur false.Otherwise, the method returns a value of false. Votre code doit ressembler à ce qui suit.Your code should look like the following.

    ''' <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;
    }
    

    Vous vérifierez ensuite la réponse en mettant à jour le code dans la méthode, afin que le gestionnaire d'événements Tick du minuteur appelle la nouvelle méthode CheckTheAnswer().Next, you'll check the answer by updating the code in the method for the timer's Tick event handler to call the new CheckTheAnswer() method.

  2. Ajoutez le code suivant dans l'instruction if else.Add the following code to the if else statement.

    Private Sub Timer1_Tick() Handles Timer1.Tick
    
        If CheckTheAnswer() Then
            ' If CheckTheAnswer() returns true, then 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
            ' If CheckTheAnswer() return false, keep counting
            ' down. 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 CheckTheAnswer() returns true, then 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)
        {
           // If CheckTheAnswer() return false, keep counting
           // down. 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;
        }
    }
    

    Si la réponse est correcte, CheckTheAnswer() retourne true.If the answer is correct, CheckTheAnswer() returns true. Le gestionnaire d’événements arrête le minuteur, affiche un message de félicitations, puis rend le bouton Démarrer à nouveau disponible.The event handler stops the timer, shows a congratulatory message, and then makes the Start button available again. Dans le cas contraire, le questionnaire continue.Otherwise, the quiz continues.

  3. Enregistrez le programme, exécutez-le, démarrez un questionnaire et fournissez une réponse correcte au problème d'addition.Save your program, run it, start a quiz, and provide a correct answer to the addition problem.

    Note

    Lorsque vous écrivez la réponse, sélectionnez la valeur par défaut avant de commencer à écrire votre réponse, ou supprimez le zéro manuellement.When you enter your answer, you must either select the default value before you start to enter your answer, or you must delete the zero manually. Vous corrigerez ce comportement ultérieurement dans ce didacticiel.You'll correct this behavior later in this tutorial.

    Quand vous fournissez une réponse correcte, une boîte de message s’ouvre, le bouton Démarrer devient disponible et le minuteur s’arrête.When you provide a correct answer, a message box opens, the Start button becomes available, and the timer stops.

Pour continuer ou examinerTo continue or review