2. června 2016

Conwayova Hra života


Po nějaké době jsem zas něco vytvořil v Game Makeru a, světe div se, zas to není hra. Nebo alespoň ne tak úplně. Jde o poměrně slavný solitér vymyšlený matematikem Johnem Hortonem Conwayem v roce 1970. Takže je to fakt stará vykopávka. Jmenuje se prostě Life ( angl. život ), protože vzhledem napodobuje růst živých buněk a vytváří pozoruhodné vzory.

Jak to funguje?
Mějme síť čtvercových buněk schopnných zapamatovat si dva stavy: plná / prázdná. Některé buňky budou na začátku plné - uživatelsky nastavitelný výchozí stav. S každým krokem v čase se provede kontrola tří jednoduchých pravidel a provedení důsledků:

( jako sousedící se chápou prvky, které jsou v síti vzdáleny o jedno pole od zkoumaného prvku a to vodorovně, svisle i příčně neboli osmiokolí )

1.Přežití
Pokud plná buňka sousedí s třemi nebo dvěma plnými buňkami přežívá do dalšího kroku.
 2. Umírání
Pokud plná buňka sousedí se čtyřmi a více plnými, umírá na přelidnění.
Pokud plná buňka sousedí s jednou nebo žádnou plnou, umírá na osamocení.
( umírání se provádí změnou buňky na prázdnou )
3. Zrození
Pokud prázdná buňka sousedí s právě třemi plnými, zrodí se na jejím místě nová plná buňka.

Co je cílem?
Vytvořit zajímavý vzor. Některá výchozí uskupení vedou po několika proměnách k zániku, některá trvale zůstanou a nemění se. Nejzajímavější ale bývají ta uskupení, která pravidelně pulzují a jakoby žijí. Také se lze snažit vytvořit trvalá uskupení podobná nějakému symbolu či obrázku.

Implementace
Ke stažení je exe pro Windows a GMZ projekt, takže se můžete podívat na kód a porovnat s vlastními nápady. Řešení je objektové a poměrně pomalé. V kompilovaném exe je ale počet buněk omezen malou velikostí okna a tak není malá rychlost problémem.

>DOWNLOAD<

Ovládání
Na začátku je síť prázdná a LMB klikáním se vytvoří výchozí stav. Pravá myš maže a DEL maže vše.
SPACE udělá jeden krok Conwayovy hry. Držené spolu SHIFT+SPACE dělá kroky plynule za sebou.




Žádné komentáře:

Okomentovat

Komentář vypovídá většinou o autorovi víc, než by byl jinak ochoten sdělit.