Condividi tramite


Passaggio 2: creare un problema di addizione casuale

Per il quiz sono necessari problemi di matematica.Se il quiz ripete gli stessi problemi, non è abbastanza complesso, pertanto è necessario includere numeri casuali.Si aggiunge un metodo denominato StartTheQuiz() che inserisce i problemi e avvia il timer del conto alla rovescia.Per questo passaggio, si aggiunge un problema di addizione casuale.Gli altri problemi di matematica e il timer del conto alla rovescia vengono aggiunti nei passaggi successivi di questa esercitazione.

Nell'esercitazione 2 sono state create diverse classi SoundPlayer per un gioco di labirinto.Si esegue la stessa operazione per il quiz di matematica, ma anziché utilizzare la classe SoundPlayer, si utilizza la classe Random.

Per creare un problema di addizione casuale

  1. Creare un oggetto Random tramite l'istruzione new come illustrato di seguito.

    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();
    

    Si è aggiunto al form un oggetto Random e lo si è denominato randomizer.

    [!NOTA]

    Nell'esercitazione del labirinto sono stati creati due componenti SoundPlayer mediante l'istruzione new.Questa è un'operazione simile,con l'unica differenza che, diversamente da SoundPlayer, Random non è un componente e non è un controllo, pertanto non può essere denominato con questi nomi.Viene chiamato oggetto.Probabilmente la parola oggetto si è già incontrata. Nelle prossime esercitazioni ne verrà spiegato il significato.Per ora, è sufficiente sapere che quando il programma utilizza un'istruzione new per creare pulsanti, etichette, pannelli, elementi OpenFileDialog, ColorDialog, SoundPlayer, Random e anche form, l'elemento che viene creato viene chiamato oggetto.Le esercitazioni successive illustrano in modo dettagliato il funzionamento di questi oggetti.

  2. Quando si avvia il form, viene creato un nuovo oggetto Random a cui viene assegnato il nome randomizer.Come con gli oggetti SoundPlayer, se in un metodo si inizia a digitare randomizer seguito dal punto (.), viene visualizzata una finestra di IntelliSense che visualizza tutti i metodi dell'oggetto Random che è possibile chiamare.Per utilizzare il metodo Next(), procedere come segue.

    Metodo Next

    Metodo Next

    Quando si chiama random.Next(50), si ottiene un numero casuale minore di 50 (da 0 a 49).

  3. A breve si compilerà un metodo per controllare le risposte, quindi il programma deve memorizzare i numeri scelti per i problemi.Aggiungere un numero intero (noto come int in C# o Integer in Visual Basic) chiamato addend1 e un int (Integer) chiamato addend2 al form (esattamente come si è aggiunto un oggetto Random chiamato randomizer), come segue.

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

    [!NOTA]

    Un int (Integer) viene utilizzato per archiviare un numero positivo o negativo.Può contenere qualsiasi numero da -2147483648 a 2147483647.Può archiviare solo numeri interi e non numeri decimali.

  4. Successivamente, aggiungere un metodo chiamato StartTheQuiz() che utilizza l'oggetto Random del metodo Next() per scegliere due numeri e posizionarli nelle etichette.Verranno infine compilati tutti i problemi, quindi verrà avviato il timer. Aggiungere quindi un commento.Dovrebbe essere analoga alla seguente.

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

    [!NOTA]

    Si noti che è stato chiamato randomizer.Next(51).Viene utilizzato 51 e non 50 di modo che la somma dei due numeri corrisponda a una risposta compresa tra 0 e 100.Se si passa 50 al metodo Next(), viene scelto un numero compreso tra 0 e 49, pertanto la risposta più alta possibile è 98, non 100.Dopo l'esecuzione delle prime due istruzioni nel metodo, ognuno dei due int (Integer), addend1 e addend2, mantiene un numero casuale compreso tra 0 a 50.

    Esaminare attentamente queste istruzioni.

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

    Le istruzioni hanno impostato le proprietà Text delle due etichette plus, plusLeftLabel e plusRightLabel, in modo che le etichette visualizzino i due numeri casuali.È necessario utilizzare il metodo ToString() di int (Integer) per convertirlo in testo (nella programmazione, stringa significa testo), perché Label controlla solo il testo visualizzato e non i numeri.

  5. Si desidera che il pulsante Avvia avvii il quiz, pertanto aprire Progettazione Windows Form e fare doppio clic sul pulsante per aggiungere un gestore dell'evento Click.Aggiungere quindi le due istruzioni seguenti.

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

    Si conosce il valore del primo un'istruzione fa: Viene chiamato il nuovo StartTheQuiz() metodo.La seconda istruzione imposta pulsante di avvio controllare Attivazione proprietà di False.Questa azione disabilita il pulsante, pertanto l'utente non può fare clic su di esso.In tal modo, l'utente può solo fare clic una volta sul pulsante Avvia.Successivamente, il pulsante viene visualizzato in grigio e diventa non disponibile. L'utente deve terminare il quiz prima della scadenza del tempo (o chiudere il programma).

  6. Salvare ed eseguire il programma.Fare clic sul pulsante Avvia.Viene visualizzato un problema di addizione casuale, come mostrato nell'immagine seguente.

    Problema di addizione casuale

    Problema con addizione casuale

Per continuare o rivedere l'esercitazione