Etapa 4: Adicionar o método CheckTheAnswer()
Precisa de seu teste verificar se o usuário responder corretamente. Felizmente, escrever métodos que fazem um cálculo simples, sistema autônomo, por exemplo, o **CheckTheAnswer()**método, não é difícil.
Observação |
---|
Para aqueles que acompanhando no Visual Basic, vale a pena observar que, como esse método Devoluções um valor, em vez do habitual Subpalavra-chave, você estará usando o Functionpalavra-chave em vez disso. É muito Simples: Sub-rotinas não retornam um valor, mas sim de funções. |
Para adicionar o método CheckTheAnswer()
Adicione de **CheckTheAnswer()**método, que adiciona addend1 e addend2 e verifica se a soma é igual ao valor da soma de NumericUpDown controle. Se a soma é igual, o método Devoluções true; caso contrário, Devoluções Falso. Seu código deve parecer semelhante ao 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; }
O programa precisa chamar esse método para verificar se o usuário respondeu corretamente. Faça isso adicionando-se para o seu if elseDeclaração. Declaraçã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, modifique o tick do timer manipulador de Evento para Seleção se a resposta. O Nova manipulador de Evento com resposta Verificando deverá 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 = 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 timer manipulador de Evento encontra o que o usuário respondeu corretamente, o manipulador de Evento interrompe o timer, mostra uma mensagem de parabenização e disponibiliza botão Iniciar novamente.
salvar e execute o programa. Iniciar o Game e digite a resposta correta para o problema de adição.
Observação Quando você Tipo sua resposta, você poderá notar que algo estranho sobre o controle do NumericUpDown . Se você Iniciar Digitação sem selecionar a resposta inteira, o zero permanece e você deve Apagar manualmente. Você corrigirá isso posteriormente neste tutorial.
Quando você digita a resposta correta, a caixa de mensagem deve ser Abrir, botão Iniciar deve estar disponível e o timer deve parar. Clicar no botão de Iniciar novamente e certifique-se de que isso aconteça.
Para continuar ou revisar
Para ir para o Próximo tutorial passo, consulte Etapa 5: Adicionar insira manipuladores de Evento para controles de NumericUpDown.
Para Retorno à etapa anterior tutorial, consulte Etapa 3: Adicionar um timer de contagem regressiva.