Partilhar via


Etapa 4: Adicionar o método CheckTheAnswer()

Na primeira parte deste tutorial, você irá escrever um método, CheckTheAnswer(), que determina se as respostas para os problemas de matemática estão corretas.Esse tópico faz parte de uma série de tutoriais sobre conceitos de codificação básica.Para obter uma visão geral do tutorial, consulte Tutorial 2: Criar um teste de matemática com cronômetro.

ObservaçãoObservação

Se você estiver seguindo o Visual Basic, você usará a palavra-chave de Function em vez da palavra-chave comum de Sub porque esse método retorna um valor.É realmente simples: um sub não retorna um valor, mas uma função sim.

Para verificar se as respostas estão corretas

  1. Adicione o método CheckTheAnswer().

    Quando esse método é chamado, ele adiciona os valores de addend1 e addend2 e compara o resultado com o valor no controle de NumericUpDown de soma.Se os valores forem iguais, o método retornará um valor de true.Caso contrário, o método retorna um valor de false.Seu código deve se parecer com o seguinte.

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

    Em seguida, você irá verificar a resposta atualizando o código no método para o manipulador de eventos de escala do timer para chamar o novo método de CheckTheAnswer().

  2. Adicione o seguinte código à instrução if else.

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

    Se a resposta estiver correta, CheckTheAnswer() retornará true.O manipulador de eventos para o timer, mostra uma mensagem congratulatório, e disponibiliza o botão Iniciar.Caso contrário, o teste continua.

  3. Salve seu programa, execute-o, inicie um teste e forneça uma resposta correta ao problema de adição.

    ObservaçãoObservação

    Ao inserir sua resposta, você deve ou selecione o valor padrão antes de começar a inserir sua resposta ou excluir o zero manualmente.Você corrigirá esse comportamento mais tarde neste tutorial.

    Quando você fornece uma resposta correta, uma caixa de mensagem abre, o botão Iniciar fica disponível e o timer para.

Para continuar ou revisar