Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
2014:ant-run [2015/01/17 18:02] Tomáš Jankech pridaný nadpis video |
2014:ant-run [2015/01/18 23:42] (aktuální) Tomáš Jankech [Software] ++ obládanie blokovka |
||
---|---|---|---|
Řádek 138: | Řádek 138: | ||
Hra končí narazením mravca na zle otočený alebo použitý blok. Po skončení hry sa zariadenie prechádza do stavu SCORE. | Hra končí narazením mravca na zle otočený alebo použitý blok. Po skončení hry sa zariadenie prechádza do stavu SCORE. | ||
^Stav - SCORE^ | ^Stav - SCORE^ | ||
- | **Indikačná dióda** – ČERVENÁ/MODRÁ (preblikávanie) | + | **Indikačná dióda** – ČERVENÁ/MODRÁ (preblikávanie)\\ |
- | **Funkcia ľavého tlačidla** – Prechod do stavu READY | + | **Funkcia ľavého tlačidla** – Prechod do stavu READY\\ |
- | **Funkcia pravého tlačidla** – Bez funkcie | + | **Funkcia pravého tlačidla** – Bez funkcie\\ |
- | **Ovládanie akcelerometrom** – Bez funkcie | + | **Ovládanie akcelerometrom** – Bez funkcie\\ |
**Popis** – Stav SCORE nastáva po prehre v hre. Prehrá nastane ak | **Popis** – Stav SCORE nastáva po prehre v hre. Prehrá nastane ak | ||
Řádek 174: | Řádek 174: | ||
<code c>typedef enum {idle, left, up, right, down} direction_t;</code> | <code c>typedef enum {idle, left, up, right, down} direction_t;</code> | ||
- | ** TODO - kód/vývoják ** | + | Na obrázku [[http://www.urel.feec.vutbr.cz/MPOA/_detail/2014/ant-run/f_accelerometer.png?id=2014%3Aant-run|Obr. 9]] je zobrazený princíp vyhodnocovania dát z akcelerometra. |
- | Obr. 9 | + | |
+ | {{ :2014:ant-run:f_accelerometer.png |Obr. 9 - Vyhodnocovanie dát z akcelerometra}} | ||
+ | |||
+ | Funkcia confrim_dir potvrdzuje návrat do rovnovážnej polohy vykreslením zelenej šípky so správnym natočením alebo maže údaje vysvietené na panely v prípade, že užívateľ doskou nepohol.\\ | ||
+ | |||
+ | Funkcia move_cursor v hre pohybuje s Funkcia confrim_dir potvrdzuje návrat do rovnovážnej polohy vykreslením zelenej šípky so správnym natočením alebo maže údaje vysvietené na panely v prípade, že užívateľ doskou nepohol. blokom (kurzorom => aktuálnym výberom). Pohyb kurzoru je nekonečný => ak prejde hráč "za okraj" kurzor sa objaví na protiľahlej strane. | ||
----- | ----- | ||
===Generovanie labyrintu=== | ===Generovanie labyrintu=== | ||
Řádek 252: | Řádek 258: | ||
Pohyb mravca teda definujú premenné, predstavujúce polohu (poradie stĺpca, poradie riadka) a smer pohybu (enum direction_t <sup>*rovnaký ako v ovládaní</sup>). Ich kombináciou sa dá zistiť presná poloha mravca. | Pohyb mravca teda definujú premenné, predstavujúce polohu (poradie stĺpca, poradie riadka) a smer pohybu (enum direction_t <sup>*rovnaký ako v ovládaní</sup>). Ich kombináciou sa dá zistiť presná poloha mravca. | ||
- | Vývojový diagram pohybu mravca v labyrinte je na obazku [[http://www.urel.feec.vutbr.cz/MPOA/_detail/2014/ant-run/f_ant_run.png?id=2014%3Aant-run|Obr.11]].\\ | + | Vývojový diagram pohybu mravca v labyrinte je na obrázku [[http://www.urel.feec.vutbr.cz/MPOA/_detail/2014/ant-run/f_ant_run.png?id=2014%3Aant-run|Obr.11]].\\ |
- | Pre prvové určenie smeru pohybu (vpravo/vľavo alebo hore/dole) sa využíva vlastnosť dátového typu enum, v ktorom jednotlivé prvky predstavujú na čísla od 0 ďalej. | + | Pre prvé určenie smeru pohybu (vpravo/vľavo alebo hore/dole) sa využíva vlastnosť dátového typu enum, v ktorom jednotlivé prvky predstavujú na čísla od 0 ďalej. |
Vo vývojovom diagrame pokračuje vetvenie algoritmu testom na „1. typ pohybu“. Týmto pohybom sa myslí pohyb, keď mravec v predchádzajúcom kroku vošiel do tohto bloku (nezáleží pri tom z akej strany). V obrázku vyššie tento stav zobrazujú spodné dva bloky. | Vo vývojovom diagrame pokračuje vetvenie algoritmu testom na „1. typ pohybu“. Týmto pohybom sa myslí pohyb, keď mravec v predchádzajúcom kroku vošiel do tohto bloku (nezáleží pri tom z akej strany). V obrázku vyššie tento stav zobrazujú spodné dva bloky. | ||
Prioritný pohyb je vždy v rámci bloku, ak takýto pohyb nie je možný, zisťuje sa, či je možný pohyb smerom von z bloku. | Prioritný pohyb je vždy v rámci bloku, ak takýto pohyb nie je možný, zisťuje sa, či je možný pohyb smerom von z bloku. | ||
Pohyb von z bloku je možný iba v prípade, že je blok labyrintu, do ktorého mravec smeruje vhodne natočený. To sa zistí tak, že pixel kam mravec mieri je označený led_lab (blok labyrintu) a vedľajší pixel (na rozhraní aktuálneho a budúceho bloku) je označený ako led_free (voľný blok). | Pohyb von z bloku je možný iba v prípade, že je blok labyrintu, do ktorého mravec smeruje vhodne natočený. To sa zistí tak, že pixel kam mravec mieri je označený led_lab (blok labyrintu) a vedľajší pixel (na rozhraní aktuálneho a budúceho bloku) je označený ako led_free (voľný blok). | ||
- | V prípade, že nie je možný ani pohyb v bloku, ani pohyb mimo bloku, hra končí. | ||
Ak mravec opúšťa blok (algoritmus mu to dovolil), môžu nastať dva prípady prechodu do vedľajšieho bloku | Ak mravec opúšťa blok (algoritmus mu to dovolil), môžu nastať dva prípady prechodu do vedľajšieho bloku | ||
* Štandardný prechod | * Štandardný prechod | ||
Řádek 264: | Řádek 269: | ||
* Predošlý blok sa označí za použitý | * Predošlý blok sa označí za použitý | ||
* Vygenerujú sa nové bloky labyrintu miesto použitých | * Vygenerujú sa nové bloky labyrintu miesto použitých | ||
+ | V prípade, že nie je možný ani pohyb v bloku, ani pohyb mimo bloku, hra končí. | ||
{{ :2014:ant-run:f_ant_run.png | Obr. 11 - Algoritmus hľadania cesty bludiskom pre pohyb mravca}} | {{ :2014:ant-run:f_ant_run.png | Obr. 11 - Algoritmus hľadania cesty bludiskom pre pohyb mravca}} | ||
=====Video===== | =====Video===== | ||
+ | Hra Ant Run, v úvode je stav TEST a demonštrácia ovládania. | ||
+ | |||
+ | {{ youtube>Z3XV8pjQB0Y?medium }} | ||
+ | |||
+ | Hra je v móde LEARN ktorý slúži na predstavenie hry (nehrá sa na skóre) | ||
+ | |||
+ | {{ youtube>373jtcEcwK0?medium }} | ||
+ | |||
+ | Podsvietenie dosky | ||
+ | |||
+ | {{ youtube>ak3MDlOqz-E?medium }} | ||
+ | |||
+ | Sekanie obrazu je spôsobené automatickým zaostrovaním môjho telefónu. | ||
=====Záver===== | =====Záver===== | ||
+ | Cieľom projektu bola realizácia hry Ant Run na určenom hardware-ovom vybavení. | ||
+ | Hra funguje v dvoch módoch - vo výučbovom móde a v móde s počítaním skóre. Oba sú odtestované a fungujú, čo dokazuje aj priložené video.\\ | ||
+ | |||
+ | Celý zdrojový kód je uverejnený na stránkach mbed [[http://developer.mbed.org/users/tomas_dca/code/MPOA_ant_run/| MPOA_ant_run ]]. |