Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
AppletŠtvorec vs šesťuholníkZásadnou zmenou oproti klasickej hre Life, odohrávajúcej sa v štvorcovej mriežke je to, že Hexagonálny Life beží v šesťuholníkovej resp. hexagonálnej mriežke. Tvar jedného políčka gridu ( mriežky ) má priamy vplyv na počet susediacich políčok. Presnejšie, oproti 8 susedom pri štvorcovom políčku máme v tomto prípade len 6 susedov. Napriek menšiemu počtu susediacich políčok ponúka hexagonálna verzia hry života graficky zaujímavejšie štruktúry. Zdroje štruktúrŠtruktúry pre tento applet boli prevzaté z : Prehľad appletov nájdete na tejto stránke. Zápis pravidielPripomeňme si pravidlá tejto hry, tak ako ich navrhol Conway. Vychádzal z priameho susedstva, teda o prežití resp. vzniku rozhodujú bezprostrední susedia políčka. Zrod bunky je vtedy, ak v okolí prázdneho políčka sú 3 bunky. Bunka prežije ( ostáva zafarbená ) pri 2 alebo 3 bunkách. V ostatných prípadoch : 0, 1, 4, 5, 6, 7, 8 buniek znamená uhynutie bunky - vzniká prázdne políčko. Slovný popis ako vidíme je dosť zdĺhavý. Namiesto neho sa zvykne používať oveľa kratší zápis pomocou číslic, napríklad :
Takto sme jednoducho zapísali Conway-ové pravidlá hry života. Význam zápisu je nasledovný. Má dve časti, ktoré sú oddelené znakom lomítka /. Čísla pred lomítkom ( môže byť aj jedno číslo ) udávajú koľko buniek musí mať okolo seba bunka, aby prežila. Teda pred lomítkom je uvedené pravidlo prežitia. Za lomítkom je uvedené pravidlo zrodu - koľko buniek musí byť okolo prázdneho políčka. Opäť tu môže byť viac čísel alebo len jedno. Uhynutie už nie je nutné uvádzať. Napríklad sada pravidiel 1,2,3/4,5 hovorí, že na prežitie bunka musí okolo seba mať 1, 2 alebo 3 bunky, a na zrod je potrebných 4 alebo 5 buniek. AppletTento zápis používa aj nasledovný applet, na ktorom si môžete odskúšať viacero sád pravidiel, prípadne navrhnúť vlastnú sadu. Treba dodržať vyššie uvedený postup. Čísla musia byť oddelené čiarkami a nesmie chýbať lomítko na oddelenie pravidla prežitia a zrodu. V pravidlách sa nesmú vyskytovať medzery. Applet ďalej ponúka možnosť vytvorenia si vlastných štruktúr jednoduchým klikaním alebo pridržaním ľavého tlačidla myši a zafarbením viacero políčok naraz. Takisto je možné upraviť si už existujúce štruktúry. Ovládanie je intuitívne. V prípade potreby získate nápovedu o ovládaní a štruktúrach kliknutím na Info. Ovládanie appletuPre správny chod appletu je potrebné mať nainštalované min. JRE 1.4.2_04
Applet je schopný maximálne zobraziť pole o veľkosti 62x40 buniek. Na rozdiel od appletu na stránke http://www.cse.sc.edu/~h6h6h6/ sa pri dosiahnutí okrajov zobrazí varovné hlásenie o dosiahnutí okraja s možnosťami:
Po pokračovaní štruktúry dôjde k jej deformovaniu po okrajoch mriežky. Ďalším rozdielom od spomínaného appletu je, že obsahuje aj test pre ustálenie štruktúry po jednej, resp. cyklického striedania dvoch po sebe idúcich generácií.
ZaujímavostiV časti venovanej pravidlám sme si vysvetlili obvyklý zápis pravidiel v tvare pravidlo prežitia / pravidlo zrodu. Táto forma zápisu nemusí však vždy úplne postačovať. Ide o prípady, kedy nás nezaujíma iba konkrétny počet buniek obklopujúcich bunku alebo prázdne políčko, ale aj umiestnenie týchto buniek. V tomto prípade je najlepšie použiť grafickú reprezentáciu pravidiel, kde okrem počtu susediacich buniek ukážeme aj ich pozície voči stredovému políčku. Pre lepšiu názornosť si pozrite nasledovný applet. V spodnej časti stránky je uvedená grafická reprezentácia pravidiel. Ďalšiu zaujímavosť ponúka program HexCells. Používa až 4 rôzne farby narozdiel od 2, s ktorými si vystačí väčšina appletov. Keďže rozlišujeme 2 stavy ( živá bunka - zafarbené políčko, neživá bunka - prázdne políčko ) úplne nám postačuje dvojica farieb, ktorá tieto stavy odlíši. HexCells má dvojicu farieb pre neživú bunku, kde sa rozlišuje medzi práve odumretou bunkou a políčkom, ktoré doteraz nebolo vyfarbené hoci obe farby zodpovedajú rovnakému stavu. Ďalšiu farbu má pre živú bunku, a posledná farba je pre políčka, ktoré nie sú momentálne viditeľné. |
||
Kontakt: Marek Bundzel |