Na mém "
ToDo" listu se objevil program s názvem "
Royal Life" pro ZX Spectrum z roku
1987, pod kterým je podepsaný
Vladimír Kostic, což je pravděpodobně člověk ze Slovinska.
František Fuka jeho výtvor vzal, trochu ho vylepšil a orazítkoval značkou
Fuxoft. Jak jste si možná všimli, tenhle článek je označený jako "
Bonus 3", čímž pokračuji ve svém nárazovém seriálu článků (
1. díl - Karel,
2. díl - programy pro Spectrum). Důvod, proč tomu tak je, je jednoduchý - je diskutabilní, jestli to je česká hra a zároveň se pořád nemůžu rozhodnout, jestli to vůbec mám brát jako videohru. Vynechat tenhle program úplně by ale byla škoda, protože zpracovává zajímavé téma - "
Hru života".
Pod celým názvem "
Conway's Game of Life" (podle matematika
Johna Conwaye) se skrývá "dvoustavový, dvourozměrný celulární automat, který svým chováním připomíná vývoj společenství živých organismů". Co to ale proboha znamená?
|
Po spuštění vypadá program takhle - není zatím zadán počáteční stav |
|
Umístil jsem pár živých buňek a jsem připraven pustit první iteraci |
Představte si
mřížku (nebo čtverečkovaný papír), kdy do každé
buňky můžete zadat jen dva stavy - buňka může být buď
živá, nebo
mrtvá. Vše se odehrává v
iteracích (tazích). Je nutné zadat nějaký počáteční stav, aby se vůbec něco stalo - do mřížky tedy umístíme pár "živých" buňek a pak spustíme první iteraci. V tento okamžik se pro každou buňku v mřížce vyhodnotí
4 pravidla:
- Každá živá buňka s méně jak 2 živými sousedy zanikne ("vymírání").
- Každá živá buňka s 2 nebo 3 živými sousedy se nemění.
- Každá živá buňka s více jak 3 živými sousedy zanikne ("přelidnění").
- Každá mrtvá buňka s právě 3 živými sousedy obživne ("reprodukce").
Tyto jednoduchá pravidla stačí k tomu, aby vznikaly velice zajímavé situace, kdy se buňky různě proměňují, nové útvary vznikají a rázem zase zanikají. Na wiki se nachází zajímavá definice, která říká, že se jedná o "zero-player" hru, kdy hráč pouze zadá počáteční stav, hru pustí a pak už pouze sleduje průběh a nemusí dál do hry zasahovat.
|
V 50. generaci se nám situace začala zajímavě vyvíjet |
|
100. generace - vznikly nám už některé "trvalé organismy" - např. čtverce 2x2, které se samy od sebe nemění |
V programu "Royal Life" vidíme ukazatele "Generation", což značí číslo iterace a "N", což značí počet aktuální živých buňek. Pomocí "G" můžeme spustit další iteraci a je tu také možnost držet klávesu "F", kdy se iterace počítají rychle za sebou, což je nejzajímavější volba.
Krása téhle hry je právě v tom pozorovat, jak se buňky mění a navzájem ovlivňují a to jen za pomoci čtyř jednoduchých pravidel. Screenshoty tedy nejsou úplně vhodnou formou prezentace, lepší je pustit si nějaké video, nebo se kouknout na animované GIFy třeba na
webu Stanfordské univerzity, kde je toto téma rozebráno do detailů.
|
150. generace - buňky, které se v levé části dostaly mimo obrazovku se objevily vpravo |
|
350. generace je už k nepoznání |
|
Až teprve v nějaké 1100. generaci se hra dostala do stabilního stavu |
Studiu "Game of Life" se někteří lidé věnují opravdu dopodrobna a vymyšleny již byly opravdu propracované situace, kdy hra běží donekonečna a vytváří zcela fascinující obrazce. Pokud hru ale budete zkoušet v laické rovině tak, jako já, tak se vám pravděpodobně hra, resp. všechny útvary složené z buňek, dostanou v určité generaci do "stabilního stavu", tzn. střídají třeba jen 2 stavy a další buňky už nejsou ovlivňovány.
Dostal jsem teď chuť si jen tak z hecu naprogramovat v nějakém moderním jazyce vlastní verzi "Života". Uvidíme.
Moderní jazyk na věc, se kterou si hrál už John von Neumann?
OdpovědětVymazatPrávě naopak, to chce nějaký pořádně starobylý: https://www.youtube.com/watch?v=kVQquhmJ7K0 :-D
faraon
Fortran 66 :) To už je jen pro opravdové nadšence.
VymazatNo to je právě ta velká chyba! Je to velmi jednoduchý a přitom nesmírně mocný jazyk.
VymazatNapříklad výpis libovolné oblasti matice na obrazovku nebo tiskárnu se dá provést jediným příkazem:
PRINT ((OBRAZ(I,J),I=1,20),J=1,20)
Sdílení dat mezi různými podprogramy je také velmi jednoduché, přitom mnohem schopnější než ve dnes moderních jazycích...
faraon
Tato hříčka kolovala u nás i v zahraničí již dávno. Je otištěna např. v knize 101 Basic Computer Games (David H. Ahl, 1973), její výskyt v tuzemských výpočetních střediscích je zmíněn již k roku 1981 (R. Bébr, Technický Magazín 12/1981). (Jiří Bernášek, dnes z technických důvodů jako anonym)
OdpovědětVymazatTak jsem neodolal a zkusil si to ve VisualBasicu v textovém režimu. Zatím v matici 28*28. Funguje to :o)
OdpovědětVymazat