Programování pro Android v prostředí MIT App Inventor
Programování pro Andorid v technicky nenáročném webovém vývojové prostředí.
11. Aktivita 7 - datové seznamy a komponenty pro práci se seznamy
|
Téma |
||
|
Tematický celek |
Datový typ seznam a komponenty pro práci se seznamy. |
|
|
Motivační rámec |
Usnadnění práce s větším množstvím proměnných a zjednodušení programu. |
|
|
Počet žáků |
5-15 |
|
|
Věk žáků |
10+ |
|
|
Pomůcky |
PC odpovídajících parametrů, |
|
|
Stručný popis aktivity |
Přihlášení k prostředí App Inventoru http://appinventor.mit.edu/ |
|
|
Vhodné místo |
Počítačová učebna |
|
|
Cíle aktivity |
Studenti se seznámí s použitím datového typu seznam a komponentami pro práci se seznamy a vyzkouší si je. |
|
|
Předchozí znalosti |
Aktivita navazuje na předchozí lekci tohoto kurzu. |
|
|
Časový plán |
Fáze činnosti s přístrojem |
Metody a formy, motivace |
|
5-15m |
Seznámení s tématem lekce. Volitelně předvedení a popis ukázkové aplikace. Dle znalostí studentů zopakování informací o datovém typu seznam a základních operací s tímto datovým typem nebo seznámení s nimi. Volitelně infromace o frontách LIFO a FIFO. |
Frontální výklad, ukázka. |
|
25-50m |
Prohlídka ukázkových aplikací. Modifikace ukázkových aplikací případně využití znalosti seznamů při tvorbě vlastní aplikace. |
Samostatná a skupinová práce s využitím získaných znalostí, infromací v tomto kurzu a externích zdrojů. |
|
15-30m |
Prezentace prací žáků, sdílení poznatků, diskuze. |
Prezentace prací a diskuze |
|
Hodnocení |
Zpětná vazba je okamžitá. Student reflektuje vzdělávací cíle, svůj postup a dosažené výsledky. Student průběžně srovnává vlastní výsledky s výsledky ostatních studentů. |
|
|
Návaznosti |
Na tuto aktivitu navazují následující aktivity, které prohlubují a kombinují znalosti prostředí App Inventoru. |
|
|
Poznámky |
Pro případ výpadku připojení k internetu nebo technických problémů s App Inventorem doporučuji připravit záložní aktivitu, založenou na podobných principech blokového programování, například offline aplikaci MIT Scratch, BYOB nebo některou z variant programovacích prostředí LOGO. |
|
Video o vytváření seznamu v AI2 2 min . Creating lists in App Inventor 2
Tutoriál k vytváření seznamu. Making Lists (App Inventor 2)
Popis jednotlivých bloků seznamu. AI2 Lists.
Aplikace využívající seznamy. Math Blaster
Aplikace pro ukázku práce s datovými seznamy
Datové seznamy usnadňují práci s programem. Podobně jako procedury zobecňují kód a umožňují ho zjednodušit, seznamy zjednodušují práci s proměnnými a jejich obsahem. Aplikace napodobuje hru videostop. Po stisknutí tlačítka start se mění obrázky tří sprite a talčítkem stop ze změny zastaví. Hráč zvedá skóre, když se mu podaří zastavit na stejných obrázcích.
Komponenty modelové aplikace.

Inicializace seznamů
V ukázce jsou vytvořeny tři seznamy. sprites a jmena_souboru jsou inicializovany jako prázdné seznamy a jsou naplněny v bloku when Screen.Initialize.
Seznam jmena_obrazku je naplněn při inicializaci. Obsahuje řetězce, kterými se jednotlivé obrázky liší. V bloku when Screen.Initialize je nejdříve vytvořen seznam instancí sprites, následně je vytvořen seznam jmena_souboru, který obsahuje celé názvy souborů s obrázky. Seznamy tedy mohou obsahovat nejen čísla a textové řetězce, mohou obsahovat také instance objektů.

Cyklus nad objekty seznamu
Tlačítkem ButtonStartStop je řízeno pouštění a zastavení časovače. Časovač Clock1 spouští v cyklu "for each sprite in list get global sprites" cyklus nad dříve vytvořeným seznamem sprites. Pro každý sprite zavolá proceduru nahodny_obrazek, která vybere ze seznamu obrázků jeden náhodný. Po druhém stisknutí tlačítka ButtonStartStop je zavolána funkce pro vyhodnocení skóre.

Vyhodnocení výsledku
Uvnitř procedury vyhodnoceni je vytvořen seznam jako lokální proměnná. Pak potřebujeme zjistit, kolik obrázků je stejných. Místo porovnávání obrázků každého s každým je tento úkol řešen pomocí seznamu. V cyklu for each se projdou všechny zobrazené obrázky a přidávají se do seznamu, pokud tam ještě nejsou. Pokud jsou po cyklu for each v seznamu 3 obrázky, znamená to, že hráč nestrefil ani dva stejné. Pokud jsou v seznamu dva obrázky, hráč strefil dva stejné a jeden jiný obrázek. Pokud je v seznamu jen jeden obrázek, znamená to, že hráč strefil 3 stejné obrázky.
Procedura vyhodnocení může vypadat na první pohled komplikovaně, ale když si odmyslíte dvě vrstvy, vnoření samotné proceduty a vnoření lokální proměnné, k "porovnani" zbude jen for a case cyklus.

Tipy na modifikace programu:
- více než 6 obrázků, které se střídají,
- více než 3 sprites pro zobrazování obrázků,
- náhodné zastavení obrázku a ponechání beze změny,
- počítání počtu pokusů, případně omezení na x pokusů, pak reset.