Udostępnij za pośrednictwem


Krok 2. Utworzenie problemu losowego dodawania

W drugiej części tego samouczka utrudnisz quiz, dodając zagadnienia matematyczne oparte na liczbach losowych.Można również utworzyć metodę o nazwie StartTheQuiz(), wypełnia ona problemy i uruchamia minutnik.W dalszej części tego samouczka dodasz problemy odejmowania, mnożenia i dzielenia.

[!UWAGA]

Ten temat jest częścią serii samouczków na temat podstawowych pojęć kodowania.Aby uzyskać przegląd samouczka, zobacz Samouczek 2: Utworzenie kwizu matematycznego z limitem czasu.

Aby utworzyć losowy problem dodawania

  1. W projektancie formularza wybierz formularz (formularz Form1).

  2. Na pasku menu należy wybrać Widok , a potem Kod.

    Wyświetla się Form1.cs lub Form1.vb, w zależności od stosowanego języka programowania, aby można było przeglądać kod formularza.

  3. Stwórz Random obiekt poprzez dodanie new instrukcji w górnej części kodu, jak poniżej.

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

    Dodano obiekt Random do formularza i nadano mu nazwę randomizer.

    Random jest znany jako obiekt.Prawdopodobnie słyszałeś już kiedyś to słowo, w następnym samouczku dowiesz się więcej, co ono oznacza dla programowania.Teraz wystarczy pamiętać, że można użyć instrukcji new, aby utworzyć przyciski, etykiety, panele, okna OpenFileDialog, ColorDialog, SoundPlayer, Random, a nawet formularze; te elementy są traktowane jak obiekty.Kiedy uruchamiasz program, formularz zostaje uruchomiony, a kod związany z nim tworzy obiekt Random i nadaje mu nazwę randomizer.

    Wkrótce będziesz tworzyć metodę sprawdzania odpowiedzi, dlatego quiz musi używać zmiennych do przechowywania liczb losowych, który generuje dla każdego problemu.Zobacz Zmienne w Visual Basic lub Typy (Przewodnik programowania w języku C#).Aby prawidłowo używać zmiennych, musisz je zadeklarować, co oznacza utworzenie listy ich nazw i typów danych.

  4. Dodaj dwie zmienne w postaci liczb całkowitych do formularza i nadaj im nazwy addend1 i addend2.

    [!UWAGA]

    Zmienna będąca liczbą całkowitą jest znana jako int w języku C# lub Liczba całkowita w języku Visual Basic.Tego typu zmienna przechowuje liczbę dodatnią lub ujemną od -2147483648 do 2147483647 i może przechowywać jedynie liczby całkowite, nie miejsca po przecinku.

    Użyj podobnej składni w celu dodawania zmiennej typu liczba całkowita, jak w przypadku dodawania obiektu Random, co ilustruje poniższy kod.

    ' Create a Random object called randomizer  
    ' to generate random numbers. 
    Private randomizer As New Random
    
    ' These integer variables store the numbers  
    ' for the addition problem.  
    Private addend1 As Integer 
    Private addend2 As Integer
    
    // Create a Random object called randomizer  
    // to generate random numbers.
    Random randomizer = new Random();
    
    // These integer variables store the numbers  
    // for the addition problem.  
    int addend1;
    int addend2;
    
  5. Dodaj metodę o nazwie StartTheQuiz(), która używa metody Next() obiektu Random do pokazania liczb losowych w etykietach.StartTheQuiz() ostatecznie wypełni wszystkie problemy i następnie uruchomi timer, więc dodaj komentarz.Funkcja powinna wyglądać następująco.

    ''' <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. 
        ' Generate two random numbers to add. 
        ' Store the values in the variables 'addend1' and 'addend2'.
        addend1 = randomizer.Next(51)
        addend2 = randomizer.Next(51)
    
        ' Convert the two randomly generated numbers 
        ' into strings so that they can be displayed 
        ' in the label controls.
        plusLeftLabel.Text = addend1.ToString()
        plusRightLabel.Text = addend2.ToString()
    
        ' 'sum' is the name of the NumericUpDown control. 
        ' This step makes sure its value is zero before 
        ' adding any values to it.
        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. 
        // Generate two random numbers to add. 
        // Store the values in the variables 'addend1' and 'addend2'.
        addend1 = randomizer.Next(51);
        addend2 = randomizer.Next(51);
    
        // Convert the two randomly generated numbers 
        // into strings so that they can be displayed 
        // in the label controls.
        plusLeftLabel.Text = addend1.ToString();
        plusRightLabel.Text = addend2.ToString();
    
        // 'sum' is the name of the NumericUpDown control. 
        // This step makes sure its value is zero before 
        // adding any values to it.
        sum.Value = 0;
    }
    

    Zwróć uwagę, że po wprowadzeniu kropki (.) po generatorze losowym w kodzie okno technologii IntelliSense otwiera i wyświetla wszystkie metody obiektu Random, które można wywoływać.Na przykład, IntelliSense wyświetla metodę Next() w następujący sposób.

    Metoda Next

    Next — metoda

    Po wprowadzeniu kropkę po obiekcie, IntelliSense pokazuje listę członków obiektu, takich jak właściwości, metody i zdarzenia.

    [!UWAGA]

    Gdy używasz metody Next() z obiektem Random, na przykład gdy wywołujesz randomizer.Next(50), otrzymujesz losową liczbę, która jest mniejsza niż 50 (od 0 do 49).W tym przykładzie wywołujesz randomizer.Next(51).Użyto 51 zamiast 50, dlatego dwie liczby losowe zostaną do siebie dodane, aby utworzyć odpowiedź w zakresie od 0 do 100.W przypadku przekazania 50 do metody Next(), wybiera ona numer od 0 do 49, więc najwyższa możliwa odpowiedź to 98, a nie 100.Po uruchomieniu pierwszych dwóch instrukcji w metodzie każdy z dwóch zmiennych w postaci liczb całkowitych, addend1 i addend2, zawiera losową liczbę od 0 do 50.Ten zrzut ekranu pokazuje kod Visual C#, ale technologia IntelliSense działa tak samo dla języka Visual Basic.

    Przyjrzyj się bliżej tym instrukcjom.

    ' Convert the two randomly generated numbers 
    ' into strings so that they can be displayed 
    ' in the label controls.
    plusLeftLabel.Text = addend1.ToString()
    plusRightLabel.Text = addend2.ToString()
    
    plusLeftLabel.Text = addend1.ToString();
    plusRightLabel.Text = addend2.ToString();
    

    Instrukcje ustawiają właściwości TextplusLeftLabel i plusRightLabel, tak że wyświetlają one dwie liczby losowe.Musisz użyć metody liczb całkowitych ToString(), aby konwertować liczby na tekst. (W programowaniu ciąg oznacza tekst.Formanty etykiet wyświetlają tylko tekst, nie wyświetlają liczb.

  6. W oknie projektu kliknij dwukrotnie przycisk Start lub wybierz go, a następnie naciśnij klawisz Enter.

    Gdy uczestnik quizu wybierze ten przycisk, quiz powinien się rozpocząć, a właśnie dodałeś program obsługi zdarzeń Click, aby zaimplementować to zachowanie.

  7. Dodaj następujące dwie instrukcje.

    ' Call the StartTheQuiz() method and enable 
    ' the Start button.  
    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;           
    }
    

    Pierwsza instrukcja wywołuje nową metodę StartTheQuiz().Druga instrukcja ustawia właściwość Enabled formantu startButton na False, tak że uczestnik quizu nie może wybrać przycisku podczas quizu.

  8. Zapisz swój kod, uruchom go, a następnie wybierz przycisk Start.

    Problem losowego dodawania pojawi się, jak na poniższej ilustracji pokazano.

    Problem losowego dodawania

    Losowy problem dodawania

    W następnym kroku samouczka dodasz sumę.

Aby kontynuować lub przeglądnąć