Partager via


É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()

  1. 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
    }  
    
  2. 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.

  3. 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.

  4. 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