Reklama

C# – Tipy, rady, návody – 5: Vygenerování náhodného čísla

Úvod

Určitě jste někdy narazili na to, že potřebujete vygenerovat náhodné číslo. Může se jednat o použití v nějaké šifře, hře atd. Právě na příkladu hodu dvou kostek si ukážeme generování náhodných čísel.

Pro generování náhodných čísel pomocí Visual Studia slouží třída Random. Třída Random negeneruje náhodné číslo, ale pseudonáhodné číslo, které je vypočítáno na základě algoritmu, do kterého vstupují mimo jiné i systémové hodiny. Proto pokud definujeme dva konstruktory Random po sobě, výsledkem budou stejné pseudonáhodné čísla. Zkusíme to na příkladu generování dvou náhodných čísel v rozmezí 1 až 100.

int r_num1, r_num2;
Random random1 = new Random();
Random random2 = new Random();
r_num1 = random1.Next(1, 101);
r_num2 = random2.Next(1, 101);

V tomto případě bude vždy platit, že r_num1 se rovná r_num2. Pokud tedy potřebujeme vytvořit dvě třídy Random tak, aby každá generovala jiná čísla, je nutné mezi vytvořenými instancemi vložit krátké uspání vlákna.

int r_num1, r_num2;
Random random1 = new Random();
System.Threading.Thread.Sleep(100); // uspani vlakna na 100 ms
Random random2 = new Random();
r_num1 = random1.Next(1, 101);
r_num2 = random2.Next(1, 101);

V tomto případě se bude jednat o generování pseudonáhodných čísel, které se mohou i shodovat vlivem statistiky, ale rozhodně nebude každé vygenerované číslo shodné.

Vzorový zdrojový kód

Pro vytvoření vzorového příkladu hodu dvou kostek budeme potřebovat pouze dvě komponenty Label a jednu komponentu Button. Vytvořený zdrojový kód je velmi jednoduchý. Do události po kliknutí tlačítka vložíme následující kód.

int r_num1, r_num2; // promenne pro ulozeni náhodnych cisel
Random random = new Random(); // vytvoreni instance tridy Random
r_num1 = random.Next(1, 7);// vygenerovani nahodneho cisla v rozmezi 1 – 6
r_num2 = random.Next(1, 7);// vygenerovani nahodneho cisla v rozmezi 1 – 6
label_num1.Text = Convert.ToString(r_num1);// zobrazeni prvniho cisla
label_num2.Text = Convert.ToString(r_num2); // zobrazeni druheho cisla

Jako první si definujeme proměnné pro uložení náhodných čísel. Poté vytvoříme instanci třídy Random, která slouží pro generování náhodných čísel. Pro vygenerování náhodného čísla využijeme metodu Next(1,7), která obsahuje omezení pro vygenerování čísla v rozmezí 1 až 6. Jako poslední jsou vygenerované čísla zobrazeny v komponentách Label. Náhled vytvořeného formuláře lze vidět na Obr. 1.

nazev

Obr. 1: Vytvořená vzorová aplikace
Následující a předchozí příspěvek v kategorii:

 

Následující: C# – Tipy, triky, návody – 6: Zobrazení informační zprávy

Předchozí: C# – Tipy, triky, návody – 4: Zjištění délky trvání určité části zdrojového kódu
 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.