Náhodné číslo   zodpovězená otázka

VB.NET

Zdravím,

předem bych chtěl poděkovat autorům tohoto webu za skvělé seriály o programování. Jsem amatér a snažím se naučit pomocí vaších seriálů Visual Basic .NET. Docela se mi to daří, baví mě to a jen tak si zkouším vytvářet hry, nebo spíš pokusy o ně :) Před chvíli mě napadlo, že bych udělal takovou hodně jednoduchou až stupidní hru. Mno jde o to, že se určí celé číslo (35 např.) a uživatel musí toto číslo uhádnout. Aplikaci již mam hotovou, ale narazil jsem na velký problém. Ono číslo, které se musí uhádnout jsem musel předem zadat do kódu. V mém případě: Dim x As Integer = 35

No a konečně můj dotaz. Existuje možnost pomocí které by se proměnná x náhodně určila z rozsahu celých čísel 0 až 100 ?

Děkuji za odpověď a ještě jednou díky za tento skvělý web

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ale jistě, a je to velmi jednoduché:

Dim x As Integer = New Random().Next(0,100)

V jednoduchosti je krása, že.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji mnohokrát za pomoc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Akorát bych doplnil následující věc - pokud těch číesl chcete generovat více, je lepší si nadeklarovat proměnnou, abyste pořád nevytvářel nové objekty přes New Random. Házelo by to totiž pořád stejná čísla a náhoda by byla ta tam. New Random je potřeba za volat jen jednou.

Dim r As New Random()   'tohle zavolat jenom jednou, stačí to umístit třeba do formuláře mimo procedury

Dim x As Integer = r.Next(0, 100)   'tohle pak vygeneruje náhodné číslo, můžete zavolat kolikrát chcete

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Nebo se to také dá udělat po staru podle vzorce:

náhodnéČíslo = CInt(Int((horníMez - dolníMez + 1) * Rnd() + dolníMez))

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Starou funkci Rnd bych už raději nepoužíval. Máme na to systémové řešení přes třídu Random.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tuším, že Rnd() navíc nedává náhodné čísla, to se dá vyřešit použitím

Randomize()

ve form1_load. Random už je náhodný úplně?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Nevíte nic a plácáte nesmysly. Funkce Rnd() vrací náhodné desetinné číslo v rozsahu 0 - 1 a ani není nutné používat inicializátor Randomize(). Je sice pravda, že by se měla používat Frameworková třída Random, nicméně funkce Rnd funguje spolehlivě také.

nahlásit spamnahlásit spam -4 / 4 odpovědětodpovědět

Sice víte hodně, ale jste zbytečně arogantní. Rnd() generuje řadu pseudonáhodných čísel a bez Randomize vždy stejnou.

nahlásit spamnahlásit spam 4 / 4 odpovědětodpovědět

Můj oblíbený zápis - samé závorky. Někdy je docela problém se v tom vyznat a najít kde jaká závorka začíná a končí :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Od toho nám Visual Studio obarvuje páry závorek, když se Caret nachází před/za jednou z nich :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback