Compartilhar via


Etapa 2: Criar um problema de adição aleatório

O teste precisa problemas matemáticos.Se o teste se repetir os mesmos problemas, ele é não desafiadora, portanto, você quer incluir números aleatórios.Você adiciona um método chamado StartTheQuiz() que preenche os problemas e inicia o timer de contagem regressiva.Para esta etapa, você pode adicionar um problema de adição aleatório.Outros problemas matemáticos e timer de contagem regressiva são adicionados em etapas posteriores neste tutorial.

Tutorial 2, você criou várias SoundPlayers para um jogo de Labirinto.Faça o mesmo para o teste de matemática, exceto em vez da SoundPlayer classe, use o Random classe.

Para criar um problema de adição aleatório

  1. Criar um Random o objeto usando um new declaração semelhante ao seguinte.

    Public Class Form1
    
        ' Create a Random object to generate random numbers.
        Private randomizer As New Random
    
    public partial class Form1 : Form
    {
        // Create a Random object to generate random numbers.
        Random randomizer = new Random();
    

    Agora você adicionou um Random o objeto para seu formulário e chamou seleção aleatória.

    ObservaçãoObservação

    O tutorial do Labirinto, você criou dois componentes de SoundPlayer usando o new instrução.Isso faz algo similar.A única diferença é que, ao contrário de SoundPlayer, Random não é um componente, e ele não é um controle, para que ele não pode ser chamado por esses nomes.Ela é chamada a um objeto.Você provavelmente já ouviu o objeto do word antes e você aprender mais sobre o que significa nos próximos poucos tutoriais.Por enquanto, tudo o que você precisa saber é que, quando seu programa usa um new é chamada de instrução para criar botões, rótulos, painéis, OpenFileDialogs, ColorDialogs, SoundPlayers, Randoms e até mesmo formulários, o item que é criado um objeto.Show de tutoriais posterior muito mais sobre como esses objetos de trabalho.

  2. Agora, quando você inicia o seu formulário, ele cria um novo Random de objeto e dá a ele o nome seleção aleatória.Como com SoundPlayers, se você entrar em um método e começa a digitar a seleção aleatória e, em seguida, ponto (.), um IntelliSense janela é aberta mostrando todas as Random os métodos do objeto que você pode chamar.Você pode usar o Next() método, da seguinte maneira.

    Método Next

    Próximo método

    Quando você chama random.Next(50), você obtém um número aleatório que é menos de 50 (de 0 a 49).

  3. Em breve, você criará um método para verificar as respostas, portanto, precisa se lembrar quais números ele escolheu para os problemas do seu programa.Adicionar um número inteiro (conhecido como um int em C# ou inteiro no Visual Basic) chamado addend1 e um int (inteiro) chamado addend2 ao formulário (exatamente como você adicionou um Random objeto chamado seleção aleatória), da seguinte forma.

    ' Create a Random object to generate random numbers.
    Private randomizer As New Random
    
    ' These Integers will store the numbers
    ' for the addition problem.
    Private addend1 As Integer
    Private addend2 As Integer
    
    // Create a Random object to generate random numbers.
    Random randomizer = new Random();
    
    // These ints will store the numbers
    // for the addition problem.
    int addend1;
    int addend2;
    
    ObservaçãoObservação

    Um int (inteiro) é usado para armazenar um valor de número positivo ou negativo.Ele pode armazenar qualquer número de -2147483648 a 2147483647.Ele só pode armazenar números inteiros e decimais não.

  4. Em seguida, adicione um método chamado StartTheQuiz() que usa a Random objeto Next() método para escolher os dois números e colocar os números nos rótulos.Ele será eventualmente preencher todos os problemas e, em seguida, iniciar o cronômetro, então, adicionar um comentário.O código deve se parecer com o seguinte:

    ''' <summary>
    ''' Start the quiz by filling in all of the problems
    ''' and starting the timer.
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub StartTheQuiz()
        ' Fill in the addition problem.
        addend1 = randomizer.Next(51)
        addend2 = randomizer.Next(51)
    
        plusLeftLabel.Text = addend1.ToString()
        plusRightLabel.Text = addend2.ToString()
    
        sum.Value = 0
    End Sub
    
    /// <summary>
    /// Start the quiz by filling in all of the problems
    /// and starting the timer.
    /// </summary>
    public void StartTheQuiz()
    {
        // Fill in the addition problem.
        addend1 = randomizer.Next(51);
        addend2 = randomizer.Next(51);
    
        plusLeftLabel.Text = addend1.ToString();
        plusRightLabel.Text = addend2.ToString();
    
        sum.Value = 0;
    }
    
    ObservaçãoObservação

    Observe que você chamou randomizer.Next(51).O motivo de 51 e não 50 é usado é então somar dois números para uma resposta que é de 0 a 100.Se você passar 50 para o Next() método, ele escolhe um número de 0 a 49, portanto, a melhor resposta possível é 98 e não a 100.Depois que as duas primeiras declarações no método execute, cada um dos dois icas (inteiros), addend1 e addend2, mantenha um número aleatório entre 0 e 50.

    Vejamos mais detalhadamente essas instruções.

    plusLeftLabel.Text = addend1.ToString()
    plusRightLabel.Text = addend2.ToString()
    
    plusLeftLabel.Text = addend1.ToString();
    plusRightLabel.Text = addend2.ToString();
    

    O conjunto de instruções o texto propriedades de etiquetas, além de dois plusLeftLabel e plusRightLabel, de modo que os rótulos de exibem os dois números aleatórios.Você precisa usar o int (Integer) ToString() método para convertê-la em texto (em programação, seqüência de caracteres significa que o texto), pois rótulo controles exibem apenas o texto e números não.

  5. Você deseja que o Iniciar botão para iniciar o teste, portanto, vá para o Windows Forms Designer e clique duas vezes no botão para adicionar uma clique em manipulador de eventos.Em seguida, adicione as duas instruções a seguintes.

    Private Sub startButton_Click() Handles startButton.Click
        StartTheQuiz()
        startButton.Enabled = False
    End Sub
    
    private void startButton_Click(object sender, EventArgs e)
    {
        StartTheQuiz();
        startButton.Enabled = false;           
    }
    

    Você sabe o que faz a primeira instrução: ele chama o novo StartTheQuiz() método.A segunda instrução define o startButton controle Enabled propriedade para False.Que desativa o botão, para que o usuário não é possível clicar nele.Dessa forma, o usuário só pode clicar a Iniciar botão uma vez.Depois disso, o botão estiver esmaecido e não está disponível e o usuário deve terminar o teste antes das execuções do time out (ou fechem o programa).

  6. Agora, salve e execute o seu programa.Clique no Iniciar botão.Um problema de adição aleatório deve aparecer, conforme mostrado na figura a seguir.

    Problema de adição aleatória

    Problema de adição aleatória

Para continuar ou revisar