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çã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
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().
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.
Salve seu programa, execute-o, inicie um teste e forneça uma resposta correta ao problema de adição.
Observaçã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
Para ir para a próxima etapa do tutorial, consulte Etapa 5: Adicionar manipuladores de eventos Enter para os controles NumericUpDown.
Para retornar à etapa anterior do tutorial, consulte Etapa 3: Adicionar um temporizador de contagem regressiva.