Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 11. 2014 20:43

liamlim
Příspěvky: 220
Škola: MFF UK
Pozice: student
Reputace:   
 

Hra života: Generations

Ahoj všichni,

Nevím jestli píšu do správné sekce ale snad ano. Dotaz je určen pro ty, kteří někdy slyšeli o hře života(nebo se jim chce si rychle něco málo nalézt). Speciálně o verzi, které se občas říká Generations. Budu se zabývat speciálním případem /2/4 neboli:

Jestliže má buňka 0(mrtvá buňka) ve svém okolí právě dvě buňky 1, pak změní stav na 1(živá buňka)
Z buňky 1 se každé kolo stane buňka 2.
Z buňky 2 se každé kolo stane buňka 3.
Z buňky 3 se každé kolo stane buňka 0(mrtvá buňka)

Pokud na začátku vložíme pouze dvě buňky 1 vedle sebe, pak se začne množství buněk růst. Šířit se. V generaci 800 a výše se začne objevovat mnoho zajímavých druhů plovoucích objektů a kolem 1300 už se začnou objevovat objekty, které v pravidelných intervalech vypouštějí jiné objekty. Celkově když sleduji chování právě tohoto vstupu tak si říkám, že kdybych si měl představit 2D vesmír, bylo by to nějak takto (Ty dvě počáteční buňky si představuju jako "big bang" a vše co se poté děje v ohraničeném prostoru považuji za různé interakce částic, kdy vznikají stále složitější a složitější útvary)

K mé otázce:
Samozřejmě když jsem si začal zmíněné pravidlo představovat jako 2D vesmír, zkusil jsem zformulovat pravidlo pro 3D vesmír. Podle mě je ideální /4/4 neboli když má buňka 0 v okolí právě 4 buňky 1 pak změní stav na 1.

Počáteční vstup by se změnil na 4 buňky se stavem 1 rozmístěné do čtverce 2 krát 2. Okolí by nebylo 8 okolních buněk, ale 26 okolních buněk.

Zkoušel jsem využít 2D pravidlo /2/4 pro simulaci 3D pravidla /4/4. Zpočátku se totiž chovají v podstatě totožně. Ale již v generaci 8 vystoupí první buňky "pryč" z dvou vrstev ve kterých byly první 4 buňky.

Teď k otázce:
Asi bych byl schopen naprogramovat zmíněné 3D pravidlo tak jak jsem popsal (asi ne ideálně ale nějak jistě ano), byl bych schopen vložit funkce pro přístup k buňce na různých souřadnicích. Ale to není přesně ono.

U 2D pravidel je zobrazení např. v příkazovém řádku jednoduché. Zobrazí se prostě vše do roviny. Můj problém je, že bych chtěl nějak přehledně zobrazit ne 2D tabulku ale 3D tabulku. Má někdo nějaké nápady? Rád bych viděl jestli pravidlo /4/4 splňuje co od něj čekám nebo ne, ale nechci se do něčeho pouštět dokud nemám konkrétní plán jak chci program vytvořit. (pozn.: programuju nedlouho v jazyce C++. Pouze jednoduché konzolové aplikace)

Tedy jestli má někdo zkušenost se zobrazováním nějakých podobných 3D věcí nebo nápad jak by se to dalo provézt (mě napadá maximálně tak zobrazení vždy jedné roviny a po stisku různých písmen zobrazení roviny "nad" nebo "pod") tak bych byl moc rád.

Jestli jste si to přečetli až sem, děkuji. Jestli téma nepatří do této sekce, omlouvám se. Snad taky nevadí trošku delší text

Offline

 

#2 07. 11. 2014 14:12 — Editoval O.o (07. 11. 2014 14:13)

O.o
Veterán
Příspěvky: 1402
Reputace:   16 
 

Re: Hra života: Generations

↑ liamlim:

Ahoj,

neni to asi idealni reseni jake bys hledal, ale muzes si to zobrazit ve trech rozmerech pomoci souradnic za pouziti nejakeho elementu, ktery bude reprezentovat jednotlivou bunku?

Muzes pouzit napriklad zdarma program ParaView. Z tveho programu si nechas vypsat soubor, kde budou souradnice a pripadne dalsi informace, ktere bys chtel zobrazovat (napr. kdyz bys vzal, ze zakladni element bude koule, tak krome souradnic, by mel soubor jeste obsahovat polomery - v tvem pripade vsechny stejne - a sloupec, ktery bude obsahovat treba jednicky a nuly).

Nakonec bys mel 3d model elementu (koule), kde jestli je element zivy/nezivy bude zobrazeno treba jinou barvou podle toho, jestli ma element prirazenou atributu 1 nebo 0, kterou jsi - viz. vyse - zaznamenal ze sveho programu.

Kazda generace (kazda iterace) bude mit vlastni soubor, ParaView umi zobrazit i sadu, staci soubory pojmenovat s ciselnym indexem postupne, jak ti jdou iterace (pr: gen_01, gen_02, gen_03, ...).

Myslim, ze takhle se na to muzes koukat jak chces vcelku pekne, jen nevim jestli jsem spravne pochopil na co se ptas, ale napsat vystup do souboru by nemel byt problem :).

Offline

 

#3 07. 11. 2014 14:14

liamlim
Příspěvky: 220
Škola: MFF UK
Pozice: student
Reputace:   
 

Re: Hra života: Generations

↑ O.o:

diky za odpoved. myslim ze jsi to pochopil spravne. urcite vyzkousim

Offline

 

#4 07. 11. 2014 15:03

O.o
Veterán
Příspěvky: 1402
Reputace:   16 
 

Re: Hra života: Generations

↑ liamlim:

No kdyby ses do toho pustil a nevedel si rady, tak se tady ozvi a napisu ti, jak by to tak mohlo vypadat - jen kdyby se ti nepodarilo najit nejaky pekny navod, nebo podobne, ale internet je plny spousty materialu.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson