Krok 2: Vytvoření problém náhodných sčítání
Kvíz potřebuje matematické úlohy.Pokud kvíz opakuje stejné úlohy, není to náročné, takže chcete zahrnout náhodná čísla.Přidejte metoda nazvanou StartTheQuiz(), která vyplní úlohy a spustí časovač odpočítávání.V tomto kroku přidáte náhodnou sčítací úlohu.Jiné matematické úlohy a odpočítávací časovač jsou přidány v dalších krocích v tomto výukovém programu.
V kurzu 2 jste vytvořili několik SoundPlayers pro hru bludiště.Totéž provedete pro matematický kvíz s výjimkou namísto třídy SoundPlayer použijte třídu Random.
Vytvořit náhodnou úlohu sčítání
Vytvořte Random objekt pomocí new příkazu následujícím způsobem.
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();
Nyní jste přidali Random objekt do formuláře a pojmenovali jej randomizer.
[!POZNÁMKA]
V bludištním kurzu jste vytvořili dvě SoundPlayer komponenty pomocí new příkazu.Toto dělá něco podobného.Jediným rozdílem je, že na rozdíl od SoundPlayer, Random není komponenta, a není ovládací prvek, takže ji nelze volat těmito názvy.Nazývá se objekt.Pravděpodobně jste slyšeli slovo objekt předtím a zjistíte další informace, co znamená, v dalších několika výukových programech.Prozatím vše, co potřebujete vědět, je, kdy váš program používá příkaz new k vytvoření tlačítek, jmenovek, panelů, OpenFileDialogs, ColorDialogs, SoundPlayers, Randoms a také formulářů, položka, která je vytvořena, se nazývá objekt.Podější výukové programy vysvětlují mnohem více o tom, jak tyto objekty pracují.
Nyní, když spustíte formulář, vytvoří nový Random objekt a nastaví jeho název na randomizer.Pokud přejdete do metody a začnete psát randomizer a potom tečku (.), jako se SoundPlayers, okno technologie IntelliSense se otevře zobrazující všechny metody objektu Random, které lze volat.Použijte metodu Next() následujícím způsobem.
Next – metoda
Pokud voláte random.Next(50), dostanete náhodné číslo, které je menší než 50 (od 0 do 49).
Brzy sestavíte metodu, kterou chcete zkontrolovat odpovědi, takže si program potřebuje pamatovat, jaké čísla zvolil pro úlohy.Přidejte celé číslo (označované jako int v jazyce C# nebo Integer v jazyce Visual Basic) nazvaný addend1 a int (Integer) nazvané addend2 k formuláři (stejně jako jste přidali Random objekt nazvaný randomizer), takto.
' 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;
[!POZNÁMKA]
Int (Integer) se používá k ukládání kladné nebo záporné hodnoty čísla.Může udržovat libovolné číslo od -2147483648 do 2147483647.Lze uložit pouze celá čísla a nikoli desetinná místa.
Dále přidejte metodu nazvanou StartTheQuiz(), která používá metodu Random objektu Next() k výběru dvou čísel a umístěte čísla do jmenovek.Nakonec vyplní všechny úlohy, a pak spustí časovač, takže přidejte komentář.Mělo by to 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. 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; }
[!POZNÁMKA]
Všimněte si, že jste zavolali randomizer.Next(51).Důvodem použití 51 a nikoli 50 je to, že dvě čísla přidají do odpovědi, která je od 0 do 100.Pokud předáte 50 Next() metodě, zvolí číslo od 0 do 49, takže nejvyšší možná odpověď je 98 a ne 100.Po provedení prvních dvou příkazů v metodě každé dva ints (Integers), addend1 a addend2, drží náhodné číslo v rozmezí 0 až 50.
Prohlédněte si blíže tyto příkazy.
plusLeftLabel.Text = addend1.ToString() plusRightLabel.Text = addend2.ToString()
plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString();
Příkazy nastaví vlastnosti Text dvou plus jmenovek plusLeftLabel a plusRightLabel, takže tyto jmenovky zobrazují dvě náhodná čísla.Je nutné použít metodu intu (Integeru) ToString() k převedení na text (v programování, řetězec znamená text), protože ovládací prvek Label zobrazí pouze text a nikoli čísla.
Chcete, aby tlačítko Start spustilo kvíz, takže jděte do Návrháře formulářů a dvakrát klikněte na tlačítko k přidání obslužné rutiny události Click.Poté přidejte následující dva příkazy.
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; }
Víte, že první příkaz nemá: volání nového StartTheQuiz() metoda.Druhý příkaz nastaví startButton řízení povoleno vlastnost False.Toto zakáže tlačítko, takže uživatel na něj nemůže kliknout.Tímto způsobem může uživatel kliknout na tlačítko Start pouze jednou.Poté je tlačítko zobrazeno jako šedé a neaktivní a uživatel musí dokončit kvíz před tím, než vyprší čas (nebo zavřít program).
Nyní uložte program a spusťte jej.Klepněte na tlačítko Start.Náhodná úloha sčítání by se měla zobrazit, jak je znázorněno na následujícím obrázku.
Náhodná úloha sčítání
Chcete-li pokračovat nebo znovu projít
Přechod na další výukový program naleznete v tématu Krok 3: Přidání odpočítávání časovače.
K návratu do předchozího kroku výukového programu přejděte na Krok 1: Vytvoření projektu a do formuláře přidat popisky.