Snake 8x8 LEDCílem projektu bylo vytvořit aplikaci na tříbarevný maticový displej o rozsahu 8x8 LED s ovládáním pomocí čtyř tlačítek. Jedná se o hru "Had", kterou znáte například ze starých mobilních telefonů. Cílem této hry je posbírat co největší množství "jablek", než se had zamotá a kousne do sebe. Po každém snězeném jablku se had prodlouží o jeden článek.Celá realizace byla provedena na školní návrhové desce DEVELOPMENT BOARD ATmeg16, navrženou Jiřím Šebestou v roce 2006. K této vývojové desce byl navíc ještě přidán externí modul s tříbarevným maticovým displejem. Využívá všechny porty použitého mikroprocesoru ATmega16, kde port A je zelená barva, port C červená barva, port B výběr aktuálního řádku (tři piny) a port D tlačítka (čtyři piny). Průběh samotného programu je poměrně jednoduchý. Po spuštění se inicializuje had na počáteční místo a je vygenerována počáteční náhodná poloha prvního jablka (bod zelené barvy). Had má v tento okamžik délku tři články a jeho "hlava" je zvýrazněna oranžovou barvou. Tato situace je zobrazena na obrázku níže. Dále je had ovládán čtyřmi tlačítky připojenými na port D (čtyři nejnižší piny) a ovládán ve směrech podle stisknutého tlačítka. Tlačítko S1 vede hada doleva, S2 nahoru, S3 dolů a S4 doprava. Had má povoleno prostupovat zdmi a je mu zakázáno otočení o 180°, kdy by se kousnul do druhého článku (požíral by sám sebe). Ukázka rozehrané hry je uvedena nížě. Na závěr hry, pokud už se nepovede hráči uřídit hada a on se kousne kdekoliv do svého těla, bude na dobu přibližně dvou sekund zobrazen tento stav s hlavou zakousnutou do těla a následně zobrazeno skóre, které je rovno počtu snědených jablíček (toto skóre je uloženo jako bitmapa pouze v datové paměti programu). Ukázka dosaženého počtu 18 bodů je uvedena níže. Pokud chce hráč zlepšit své závěrečné skóre, musí zmáčknout tlačítko S1 (vlevo), které opětovně spustí aplikaci. Názornou ukázku běhu programu lze shlédnout na následujícím klipu:
Byly provedeny dvě funkční programové realizace, uživatel rozdíl ve výsledku nepozná. 1. Realizace je co do rozsahu kódu objemnější, protože byla psána ve dvou souborech. V externí knihovně, která obsahuje funkce pro pohyb hada v rozměru 8x8 bodů, generování náhodné pozice jablka jako potravy pro hada a funkci, která řeší případnou kolizi, tzn. zakousnutí hada do sebe sama. V hlavním programu je poté kód, který obsluhuje aplikaci po hardwarové stránce, tzn. obsluha pro stisk tlačítka, volání pozice hada a jablka pomocí funkcí z externí knihovny pro výpis na maticový displej. Krátká ukázka kódu je uvedena níže.
2. Realizace je napsána efektivněji, co do rozsahu kódu. Je psána v jednom souboru a obsahuje práci s ukazateli i s programovou pamětí. Oproti první realizaci se po fatálním zakousnutí hada navíc zobrazí dosažené skóre. Níže je uvedena ukázka kódu, který určuje, co se stane po zakousnutí hada do sebe sama.
Závěr: Literatura: Autoři: Odkazy & Download:
Podobné články:
Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací.
Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
Komentáře (2): |
| (c) 2000 - 2013 Pandatron.cz - Elektrotechnický magazín ISSN 1803-6007 | ||
| Napište nám | Vše o Pandatronu | RSS export |