Etapa 4: Adicionar o método CheckTheAnswer()
Seu teste precisa verificar se o usuário responder corretamente.Felizmente, escrever métodos que fazem um cálculo simples, como o CheckTheAnswer() método, não é difícil.
Observação |
---|
Para aqueles que esteja acompanhando em Visual Basic, vale a pena observar que, como esse método retorna um valor, em vez dos controles usuais Sub palavra-chave, você estará usando o Function palavra-chave em vez disso.É realmente simple: Subs não retornam um valor, mas o fazem de funções. |
Para adicionar o método CheckTheAnswer()
Adicionar o CheckTheAnswer() método, que adiciona addend1 e addend2 e verifica se a soma é igual ao valor na soma NumericUpDown controle.Se a soma é igual, o método retorna true; Caso contrário, ele retornará false.Seu código deve ter a seguinte aparência.
''' <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; }
Seu programa precisa chamar esse método para verificar se o usuário respondeu corretamente.Fazer isso, adicionando ao seu if else instrução.A instrução é semelhante ao seguinte.
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 }
Em seguida, você modifique o manipulador de eventos Tick do timer para verificar a resposta.O novo manipulador de eventos com a verificação de resposta deve incluir o seguinte.
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; } }
Agora, se o manipulador de eventos do timer encontrar o que o usuário respondeu corretamente, o manipulador de eventos interrompe o timer, mostra uma mensagem de Parabéns e faz o Iniciar botão disponível novamente.
Salve e execute o programa.Inicie o jogo e digite a resposta correta para o problema de adição.
Observação Quando você digitar sua resposta, você pode observar algo estranho sobre o NumericUpDown controle.Se você começar a digitar sem selecionar a resposta inteira, o zero permanece e você deverá excluí-la manualmente.Você corrigirá isso posteriormente neste tutorial.
Quando você digita a resposta correta, deve abrir a caixa de mensagem, o Iniciar botão deve estar disponível e o timer deve parar.Clique no Iniciar botão novamente e certifique-se de que isso acontece.
Para continuar ou revisar
Para ir para a próxima etapa do tutorial, consulte Etapa 5: Adicionar insira manipuladores de eventos para controles NumericUpDown.
Para retornar para a etapa anterior do tutorial, consulte Etapa 3: Adicionar um Timer de contagem regressiva.