Sdílet prostřednictvím


Krok 2: Vytvořte náhodný problém s přidáním

V druhé části tohoto kurzu vytvoříte náročnější kvíz přidáním matematických úlohy, které jsou založeny na náhodných číslech.Přidejte také vytvořit metoda s názvem StartTheQuiz(), a která vyplní úlohy a spustí časovač odpočítávání.Dále v tomto tutoriálu přidáte odčítání, násobení a dělení.

[!POZNÁMKA]

Toto téma je součástí řady výukových programů o základních principech kódování.Přehled tutoriálu naleznete v tématu Tutoriál 2: Vytvoření matematického kvízu s časovým limitem.

Vytvořit náhodnou úlohu sčítání

  1. V návrháři formulářů vyberte formulář (Form1).

  2. Na panelu nabídek zvolte možnost Zobrazení, Kód.

    Form1.cs nebo Form1.vb se objeví, v závislosti na programovacím jazyku, který používáte, takže můžete zobrazit kód za formulářem.

  3. Vytvořte objekt Random přidáním příkazu new do horní části kódu, jako následující.

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

    Přidali jste objekt Random do formuláře a dali jste objektu název randomizer.

    Random je znám jako objekt.Pravděpodobně jste toto slovo slyšeli již dříve. V dalších několika výukových programech zjistíte více o tom, co znamená pro programování.Nyní si stačí zapamatovat, že můžete použít příkazy new k vytvoření tlačítek, popisků, panelů, dialogů pro otevření souborů, dialogů barev, hudebních přehrávačů, náhodných položek a dokonce i formulářů, a tyto položky jsou také označovány jako objekty.Když svůj program spustíte, formulář bude spuštěn a kód za ním vytvoří objekt Random a pojmenuje ho randomizer.

    Brzy budete vytvářet metodu pro zkontrolování odpovědí, váš kvíz musí proto používat proměnné pro uložení náhodných čísel, která se pro každý problém generují.Viz Proměnné v jazyce Visual Basic nebo Typy (Průvodce programováním v C#).Pro správné použití proměnných je třeba je deklarovat, což znamená vypsat jejich názvy a datové typy.

  4. Do formuláře přidat dvě celočíselné proměnné a pojmenujte je addend1 a addend2.

    [!POZNÁMKA]

    Celočíselná proměnná je označována jako int v jazyce C# nebo Integer v jazyce Visual Basic.Tento typ proměnné ukládá kladné nebo záporné číslo od -2147483648 po 2147483647 a umožňuje ukládat pouze celá čísla bez desetinných čísel.

    Podobná syntaxe umožňuje přidat proměnnou celého čísla způsobem, jakým jste přidali objekt Random (jak ukazuje následující kód).

    ' 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. Přidejte metodu, která se nazývá StartTheQuiz() a která používá Random metody Next() objektu pro zobrazení náhodných čísel v popiscích.StartTheQuiz() nakonec vyplní všechny úlohy, a pak spustí časovač, takže přidejte komentář.Funkce by měla vypadat takto.

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

    Všimněte si, že když za kód randomizeru zadáte tečku (.), okno technologie IntelliSense se otevře a zobrazí všechny metody objektu Random, které lze volat.Například technologie Intellisense uvádí metodu Next() následujícím způsobem.

    Další metoda

    Next – metoda

    Pokud zadáte tečku po objektu, technologie IntelliSense zobrazí seznam členů objektu, jako jsou vlastnosti, metody a události.

    [!POZNÁMKA]

    Pokud použijete metodu Next() s objektem Random, například při volání randomizer.Next(50) získáte náhodné číslo, které je menší než 50 (od 0 do 49).V tomto příkladu jste volali randomizer.Next(51).Použili jste 51 a nikoli 50, aby se dvě náhodná čísla sečetla pro odpověď, která je od 0 do 100.Pokud předáte 50 metodě Next(), zvolí číslo od 0 do 49, takže nejvyšší možná odpověď je 98, ne 100.Po spuštění prvních dvou příkazů v metodě, každé dvě celočíselné proměnné, addend1 a addend2, drží náhodné číslo v rozmezí 0 až 50.Tento obrázek obrazovky ukazuje kód Visual C#, ale IntelliSense funguje stejným způsobem, jako Visual Basic.

    Prohlédněte si blíže tyto příkazy.

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

    Příkazy nastaví vlastnosti Text pro plusLeftLabel a plusRightLabel, takže tyto jmenovky zobrazují dvě náhodná čísla.K převedení čísel na text je nutné použít metodu ToString() celého čísla. (V programování řetězec znamená text.Ovládací prvek Label zobrazí pouze text, nikoli čísla.

  6. V okně návrhu buď poklepejte na tlačítko Start, nebo jej vyberte a pak zvolte klávesu Enter.

    Pokud autor kvízu zvolí toto tlačítko, kvíz by se měl spustit a vy jste právě přidali obslužnou rutinu události Click k implementaci tohoto chování.

  7. Přidejte následující dva příkazy.

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

    První příkaz volá novou metodu StartTheQuiz().Druhý příkaz nastaví vlastnost Enabled ovládacího prvku startButton na hodnotu False, aby uživatel, který se účastní kvízu, nemohl na tlačítko kliknout během kvízu.

  8. Uložte svůj kód, spusťte jej a pak zvolte tlačítko Start.

    Zobrazí se problém náhodné úlohy sčítání, jak ukazuje následující obrázek.

    Náhodná úloha sčítání

    Náhodné problém

    V dalším kroku výukového programu přidáte součet.

Pokračování nebo kontrola