Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Jak udělat deterministický generátor světa?

Aktivity
Avatar
Neaktivní uživatel:20.4.2019 12:01

Dělám hru kde potřebuji deterministický genérátor světa, takže náhodně vygeneruju nějaké číslo, které když bude stejné tak i svět bude stejný. Svět je rozdělen na bloky, každý blok má svoji četnost která se mění podle hloubky, změnou hloubky se i odebírají a přidávají ze seznamu dostupné bloky.

Nedeterministický generátor dokážu. Ten fungoval na principu že se sčtítaly četnosti a vygenerovalo se náhodné číslo v romezí 1-vysledek všech četností. Poté se zjistilo kterému bloku odpovídá dané číslo. Uvedu na příkladu:

Blok 1 má četnost 10
Blok 2 má četnost 5
Když sečtu četnosti vyjde 15, 1-10 patří bloku 1, 11-15 bloku 2. Náhodné číslo je např. 8 takže se použije blok 1.

Je možné udělat něco takového aby to bylo deterministické? Sířka a hloubka budou pořád stejné.
Děkuji za odpoveď :)

Zkusil jsem: Nedeterministického generátoru světa

Chci docílit: Deterministického generátoru světa

Odpovědět
20.4.2019 12:01
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Luboš Běhounek Satik:20.4.2019 12:12

Ano, pokud používáš nějaký běžný deterministický generátor náhodných čísel, tak mu stačí vždycky nastavit stejný seed - to je to číslo, co když bude stejné, tak budou vypadávat stejná náhodná čísla, takže budeš mít stejný svět.

V C# při vytváření instance třídy Random jen stačí zadat seed parametr, když ho nezadáš, tak se použije tuším aktuální čas.

class World
{
  Random rnd = new Random(42);
...
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
20.4.2019 12:12
https://www.facebook.com/peasantsandcastles/
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.