Realizujte simulátor hry LIFE. Popis hry LIFE je zde: - Je dána ctvercová sít - V každém ctverci muže být prítomna bunka, nebo nemusí být prítomna. Sleduje se rozmístení bunek v dalších generacích. - Vznik, zánik a prežívání bunek se rídí následujícími pravidly: 1, Má -li bunka méne než dva sousedy, nebo více než tri sousedy, zaniká. 2, Má -li bunka dva nebo tri sousedy, prežívá. 3, Má -li prázdné pole tri sousední bunky, vzniká na nem bunka nová. - Všechna tato pravidla zániku a vzniku se uplatní soucasne ve stavu jedné generace. Tím se vytvorí mapa nové generace. Po jejím celém vypocítání (všech vzniku a zániku) zacne platit tato nová generace. Váš program by mel na základní úrovni umožnit vložit do hracího pole bunky, spustit simulaci, sledovat její jednotlivé generace a potom simulaci zastavit. Ošetrete vstupy proti zadání bunek mimo herní pole a podobne. Rozširující zadání muže obohatit program o následující chování: - Nacítání a ukládání mapy do souboru. - Komfortnejší výstupy a statistiky (pocty generací, bunek, zmen) - Automatické ukoncení simulace v ustáleném nebo periodickém stavu. - Zmena parametru hry (velikost herního pole, chování na okrajích, zmena poctu sousedu pro zánik a vznik, ...). Prihlíží se i ke grafickému propracování vstupu a výstupu (s ohledem na použité vývojové prostredí). následujících úloh je v závorkách uveden maximální pocet bodu, který lze jejich rešením získat. Vaším úkolem není vyrešit úspešne všechny úlohy (to byste velmi pravdepodobne ve vyhrazeném case nestihli), ale vybrat si jen ty které vám vyhovují, které budete schopni vyrešit a zároven vám zajistí dostatecný pocet bodu. *********************** 1) Velká císla - scítání (2 body) Napište program, který bude umet secíst dve libovolná zadaná celá císla. Jediné co mužete o scítancích prredpokládat je, že žádný nebude mít více než 8000 cifer. ************************ 2) Velká císla - násobení (15 bodu) Napište program, který bude umet vynásobit dve libovolná zadaná celá císla. Jediné co mužete o násobených císlech predpokládat je, že žádné z násobených císel nemá více než 4000 cifer. ************************ 3) Analýza textu (10 bodu) Napište program, který pro zadaný textový soubor vypíše slova která soubor obsahuje a u každého slova oznámí kolikrát se v souboru vyskytuje. Tedy napríklad pro soubor s obsahem: -- Ahoj, toto je slovo a dalsi slovo a jeste jedno slovo a slovo a dve slova a slovo a slova -- by váš program mel vypsat takovýto výsledek Ahoj - 1x toto - 1x je - 1x slovo - 6x a - 6x dalsi - 1x jeste - 1x dve - 1x slova - 2x ************************ 4) Zarovnávání (10 bodu) Napište program, který bude umet zarovnat daný text na uživatelem zadanou šírku, aniž by rozdeloval slova. Príklad: Na vstupu je soubor obsahujici text: - Ahoj, toto je text meho souboru, ktery je urcen k tomu, aby ho Tvuj skvely program preformatoval na uzivatelem zadanou sirku. Nemuzu se dockat, az mne preformatujes. - Váš program by mel po zadání požadované šírky 30 vypsat následující text: - Ahoj, toto je text meho souboru, ktery je urcen k tomu, aby ho Tvuj skvely program preformatoval na uzivatelem zadanou sirku. Nemuzu se dockat, az mne preformatujes. - V prípade, že soubor nelze bez delení slov pri zadané šce preformátovat, mel by váš program jak možnost nechat rádek delší než je požadovaná velikost, tak i možnost rozdelení slova na dve cásti. ************************ 5) Závorky (20 bodu) Napište program, který pro zadaný pocet závorek vypíše všechna správná uzávorkování, která lze tímto poctem závorek vytvorit. Kupríkladu pro pocet závorek 6 lze vytvorit tato správná uzávorkování: ((())) (()()) (())() ()(()) ()()() všechan ostatní uzávorkování - napríklad )()()( - jsou chybná a váš program je nesmí vypsat. ************************ 6) Bludište (25 bodu) Napište program, který nacte z datového souboru bludište (formát souboru je popsán níže) a zjistí, zda-li v tomto bludišti existuje cesta od startu k cíli a v pripade že ano, tak tuto (nejkratší) cestu vyznací. Specifikace vstupu: programu je zadáno jméno souboru, ze kterého má nacíst bludište. Povolené znaky v bludišti jsou: X - oznacuje zed S - oznacuje start C - oznacuje cíl Je zaruceno, že kolem každého bludište je zed. Príklad: XXXXXXXXXXXXXX X X X X X S X X X X X X XXXXXX X X X X XXXXXXX XXXXX X X XX X X X X X X X XC X X XXXX X X X X XX X X X XXXXXXXXXXXXXX V základní verzi by mel program zjistit, zda-li v zadaném bludišti existuje cesta od startu k cíli (zdmi se procházet nesmí :) ), a jakýmkoliv zpusobem správnou cestu vyznacit. Je vhodné, aby program našel nejkratší existující cestu (v pripade že nejkratších cest stejné délky existuje více, vypsal libovolnou z nic). Príklad jak muže vypadat výlsedný výstup: XXXXXXXXXXXXXX X X X X X S X X X X ... X X XXXXXX. X X X . X XXXXXXX. XXXXX X X. XX X X X. X X X X. XC.X X XXXX. XX.X X X .XX. X X .. X XXXXXXXXXXXXXX (tecky znací nalezenou cestu). V opacném prípade je nutné uživateli ohlásit, že bludište nemá rešení.