Přeskočit na obsah

Myší závody (hra v prostředí Scratch)

Autor: Jan Preclík

Oblast z RVP

Doporučený stupeň

Algoritmizace a programování

2. stupeň ZŠ, nižší ročníky SŠ

Naplňované výstupy RVP

·       po přečtení jednotlivých kroků algoritmu nebo programu vysvětlí celý postup; určí problém, který je daným algoritmem řešen

·       rozdělí problém na jednotlivě řešitelné části a navrhne a popíše kroky k jejich řešení

·       v blokově orientovaném programovacím jazyce vytvoří přehledný program s ohledem na jeho možné důsledky a svou odpovědnost za ně; program vyzkouší a opraví v něm případné chyby; používá opakování, větvení programu

·       ověří správnost postupu, najde a opraví v něm případnou chybu

Vstupní požadavky na žáky

·       Žák umí pracovat s webovým prohlížečem (zadat adresu stránky, obnovit stránku, orientuje se v prvcích webové stránky).

·       Žák má svoji vlastní e-mailovou adresu a dokáže s ní pracovat (přečíst zprávu a odpovědět na ni).

·       Žák chápe princip cloudového prostředí a základní principy práce v něm (např. nutnost registrace a přihlášení).

·       Žák chápe pojem algoritmu jako návodu na řešení dané úlohy, dokáže konkrétní algoritmus popsat vlastními slovy.

·       Žák již řešil jednodušší úlohy v blokově orientovaném programovacím jazyce.

Cíl aktivity

·       Žák podle návodu vytvoří jednoduchou hru, na praktických příkladech se tak seznámí s významem a použitím jednotlivých programových bloků (příkazů).

·       Žák pochopí princip programování řízeného událostmi, seznámí se se základními algoritmickými strukturami (sekvence, podmínka, cyklus).

·       Žák vytvořenou hru otestuje a vlastními slovy popíše nalezené problémy (nedokonalosti v programu), pokusí se navrhnout a realizovat jejich odstranění.

·       Žák na základě získaných znalostí rozšíří projekt o možnost hry dvou hráčů.

·       Žák svoji hru prezentuje spolužákům.

Rozvíjené kompetence

Klíčové kompetence prolínající se s rozvojem digitální gramotnosti žáků:

Kompetence k učení

  • samostatně zpracovává zadaný projekt (zpočátku s pomocí návodu)

·       zhodnotí a otestuje vytvořené řešení a navrhuje další jeho možné zlepšování

Kompetence k řešení problémů

  • navrhuje algoritmus pro řešení úlohy a formuluje ho vlastními slovy
  • na základě algoritmu sestaví program v grafickém programovacím jazyce

·       rozpoznává chyby ve vytvořeném programu a navrhuje jejich řešení

Kompetence komunikativní

·       vysvětlí algoritmus hry vlastními slovy

·       svůj projekt prezentuje spolužákům

Kompetence sociální a personální

·       při testování vytvořené hry spolupracuje se spolužáky

·       poskytuje zpětnou vazbu k jejich projektům

Potřebné vybavení

PC, internet, webový prohlížeč (Google Chrome), dostupné stránky na adrese https://scratch.mit.edu/

Časová dotace

6 vyučovacích hodin

Průběh výuky

  1. Motivace žáků (5 minut) – ukázka jednoduché hry (průchod bludištěm, https://www.happyclicks.net/maze-games/9_maze_games_beetle.php); návrh společně vytvořit hru lepší
  2. Základní seznámení s prostředím Scratch a registrace (15minut)
  3. Tvorba vlastní hry „Myší závody“ (70 minut) – práce žáků podle návodu doplněná pomocí učitele u problémových pasáží
  4. Testování vytvořené hry, odhalování možných problémů (45 minut) – samostatná práce žáků, skupinová práce, poskytování zpětné vazby ostatním
  5. Rozšíření hry o možnost hry dvou hráčů (45 minut) – samostatná práce žáků
  6. Vlastní vylepšení hry (45 minut) – např. jiná grafika, jiné herní chování, samostatná práce žáků
  7. Prezentace projektu ostatním (5 minut na jednoho žáka)

Příprava na výuku

Organizace práce

Následují instrukce pro žáky rozdělené do několika celků. Časový údaj je jen orientační, záleží na předchozích zkušenostech žáků i na jejich chuti pracovat.

Tento symbol označuje místa, kde je dobré nechat žáky samostatně vymyslet řešení úkolu, vzájemně prodiskutovat navržené téma atp. A pak teprve pokračovat dále. Návod pro žáky můžete v těchto místech například rozdělit.

Tímto symbolem jsou označena místa a věci, na které je potřeba dávat pozor.

Takto jsou označeny úkoly, které si mají žáci samostatně vyzkoušet.

Otazník označuje otázku pro žáky, je dobré je vést k diskuzi a k tomu, aby na odpověď přišli samostatně.

Motivace (5 minut)
  1. Podívejte se na stránku https://www.happyclicks.net/maze-games/9_maze_games_beetle.php, kde je v jednoduché hře vaším úkolem dovést berušku skrz bludiště ke sluníčku.
  2. Tato hra je ale příliš jednoduchá a není moc zajímavá, že? Pojďme tedy společně vytvořit lepší. Nazveme ji „Myší závody“ a cílem bude dovést myš co nejrychleji k nějaké dobrotě. Na závěr vytvoříme hru pro dva hráče.
Základní seznámení s prostředím Scratch (15 minut)
  1. Na adrese https://scratch.mit.edu/ je nejprve potřeba se zaregistrovat – odkaz „Připojit se ke Scratchi“.
    1. Jako „Jméno uživatele“ zvolte spíše přezdívku než vaše skutečné jméno. Ale takovou, kterou ještě nikdo nepoužil, to bude možná chtít trochu přemýšlení.
    2. E-mail uveďte takový, ke kterému máte přístup. Abyste mohli svoje projekty sdílet (a mít v prostředí dostupné všechny funkce), musíte svoji adresu potvrdit kliknutím na odkaz v zaslaném e-mailu (bude mít předmět Confirm your Scratch account).
  2. Po přihlášení do prostředí Scratch uvidíte vaše jméno v pravém horním rohu.
  3. Klikněte na „Tvořit“ a můžete se pustit do práce.
  4. Pokud by náhodou prostředí nebylo v češtině, klikněte v menu v levém rohu na ikonku zeměkoule a vyberte jazyk Česky.
  5. V prostředí Scratch ovládáte pomocí bloků (příkazů) jednu nebo více postav. Každá postava má svůj vlastní scénář (program), podle kterého se chová. Můžete také měnit pozadí scény (kde se postava pohybuje).

Tvorba vlastní hry „Myší závody“ (115 minut)

Idea hry: Pomocí šipek doleva/doprava budeme ovládat pohybující se myšku. Jejím úkolem je co nejrychleji projít bludištěm a najít sladkou koblihu (sýr bohužel standardně Scratch nenabízí 😊). Při nárazu na překážku myšce nějaký čas trvá, než se z té rány vzpamatuje.

Tvorbu hry si rozdělíme do několika jednodušších částí. Nejprve se naučíme myšku ovládat.

  1. Zrušte postavu kocoura kliknutím na ikonu koše.

  2. Vyberte novou postavu, buď najděte obrázek myšky nebo do políčka Hledat zadejte „mouse“.

Pokud chcete experimentovat s jiným obrázkem postavy, vybírejte takové obrázky, kde je pohled na zvířátko shora.

  1. Nyní myšku naučíme poslouchat – reagovat na stisk kláves. K tomu využijeme blok „po stisku klávesy“ z kategorie Události. Tento blok se vykoná vždy, když stisknete příslušnou klávesu (kterou vyberete z rozbalovacího seznamu).
  2. Otáčení myšky po stisku šipky doleva zajistí blok „otoč se…“ z kategorie Pohyb. Blok připojte pod blok události.
  3. Protože učíme myšku otáčet se doleva i doprava, tj. reagovat na stisk dvou různých kláves, budeme potřebovat dva různé bloky událostí.

Zkuste sami naučit myšku otáčet se i doprava a teprve potom pokračujte.

———————————————————————————————–

Náš program zatím vypadá takto:

Je úplně jedno, jestli oranžové bloky událostí umístíte pod sebe nebo vedle sebe. Můžete je dát kamkoli na plochu scénáře.

Všimněte si, že po stisku šipky doleva/doprava se žlutě zvýrazní ty bloky, které se právě provádí. Tak můžete sledovat běh vašeho programu.

  1. Hru spustíte kliknutím na tlačítko . Běžící program zastavíte tlačítkem .
    Chceme, aby se po spuštění programu myška rozeběhla dopředu. Kdybychom ale využili jenom následující dva bloky, myška by po každém kliknutí na tlačítko jen jednou poskočila dopředu o zadaný počet kroků.
  2. Aby myška stále běžela kupředu, musíme blok „dopředu o … kroků“ opakovat. K tomu slouží blok „opakuj stále“ z kategorie Ovládání (tzv. cyklus). Aby myška neběžela příliš rychle, zmenšíme počet kroků na 2, takže při každém opakování cyklu udělá myška dva kroky.

Už víte, kde a jak se dá měnit rychlost běhu myšky? A kde rychlost jejího otáčení? Vyzkoušejte.

Víte také, proč jsem vás v bodě č. 9 upozorňoval, abyste vybírali takové obrázky, kde je pohled na zvířátko shora? Zkuste vysvětlit vlastními slovy.

———————————————————————————————–

Náš program nyní vypadá takto:

Po stisku tlačítka  se myška rozeběhne kupředu a můžete ji ovládat šipkami doleva a doprava.

  1. Nyní připravíme myšce nějaké překážky, aby cestu za koblihou neměla tak snadnou. Na scénu, po které se myška pohybuje, nakreslíme bludiště.
  2. Bludiště se bude skládat z černých čar nakreslených silnou čarou s využitím nástroje „Úsečka“.

Všechny překážky kreslete stejnou (černou) barvou, proč je to důležité uvidíte později.

Kliknutím na záložku „Scénáře“ a výběrem postavy myšky se vrátíte k editaci programu.

  1. Chceme, aby se po spuštění hry myška objevila v levém horním rohu bludiště, měla poloviční velikost a byla natočena směrem doprava. K tomu využijeme následující tři příkazy – takovému nastavení počátečního stavu se říká inicializace.

Dávejte pozor, abyste první tři bloky dali před cyklus, ne dovnitř cyklu!

  1. Nyní ale myška dokáže „procházet zdí“, to není dobré. V každém běhu cyklu se musíme podívat, jestli myška nenarazila do překážky, a pokud ano, bude jí nějaký čas trvat, než se z nárazu vzpamatuje. Toho dosáhneme pomocí podmínky – bloku „když … tak …“ z kategorie Ovládání.
  2. Náraz do překážky poznáme tak, že se myška bude dotýkat černé barvy – takovou podmínku najdete v kategorii Vnímání. Správnou barvu naberete kapátkem přímo ze scény, tak jak je ukázáno na následujícím obrázku – klikněte na barvu v bloku „dotýkáš se barvy“, poté na ikonu kapátka a pak na pixel příslušné barvy ve scéně (pod lupou).

Už víte, proč jsem vás v bodě č. 16 upozorňoval, abyste všechny překážky kreslili stejnou barvou?

  1. Po nárazu do překážky se myška na 2 sekundy zamyslí. Výsledný program bude vypadat následovně:

Nyní si chvíli hrajte. Tomu se říká testování – hledáte chyby ve vašem programu. Najdete nějaké? A když ne přímo chyby, tak nějaké problémy nebo podivné chování? Zkuste navrhnout jejich odstranění nebo vylepšení…

———————————————————————————————–

Asi jste si všimli, že je trošku „problém s ocáskem“ – když se myška dotkne (například při otáčení) ocáskem překážky, je to bráno jako náraz do překážky. Tento problém asi nějaké elegantní řešení nemá, můžeme ho ale odstranit změnou herního principu – po nárazu do překážky bude myška „teleportována“ zpět na začátek bludiště a musí začít znovu od začátku. To provedete pomocí bloku „klouzej … sekund na …“.

Také není úplně fér, že myška může překážky obejít tak, že se schová „za okraj“ herního pole (scény). To můžete vyřešit tak, že kolem celého herního pole nakreslíte černé čáry = překážky. Při kreslení můžete využít i funkci Obdélník (ale pozor, bez výplně!).

  1. Blížíme se do finále. Cílem myšky je najít sladkou koblihu, proto přidáme další postavu (Donut) a umístíme ji do pravého dolního rohu.
  2. Podobně jako v každém opakování cyklu testujeme, zda myška nenarazila do překážky, tak budeme pomocí další podmínky testovat, jestli už myška nenašla Donut. Blok „zastav…“ zastaví běh všech scénářů = hra skončila.

Nyní máme v našem projektu dvě postavy, každá z nich má svůj vlastní scénář (Donut ho má prázdný). Proto si vždy dejte pozor, kterou postavu máte vybranou a se kterým scénářem pracujete.

Výsledný program vypadá takto:

Úkoly a náměty pro samostatnou práci (90 minut)
  1. Rozšiřte hru o možnost hry dvou hráčů – je to úplně jednoduché:
    1. Zkopírujte postavu Mouse1 – klikněte na ni pravým tlačítkem myši a vyberte „zkopíruj“. Nyní máte dvě myšky, každá má svůj vlastní scénář.
    2. Ve scénáři druhé myšky upravte její startovní pozici a klávesy, kterými ji bude ovládat druhý hráč.
    3. Kdo chce, může druhé postavě změnit obrázek, třeba na brouka. Obrázek postavy změníte na kartě Kostým.

Přijdete na to, proč se většinou náraz myšky do soupeře chová jako náraz na překážku? Občas ale ne… Proč?

  1. Vymyslete a nakreslete různá bludiště, vhodně zkombinujte mezery mezi překážkami s velikostí myšky…
  2. Pohrajte si s hratelností – pokuste se najít ideální rychlost pohybu myšky a ideální rychlost otáčení. Tak, aby hra nebyla ani moc lehká ani moc těžká. Dobře vyladit hratelnost je pro úspěch hry stejně tak důležité jako dobrý nápad a kvalitní naprogramování, možná ještě důležitější.
Prezentace vaší tvorby (5 minut na jednoho žáka)

Pochlubte se ostatním, snažte se svoji hru „prodat“ co nejlépe!

Na co si dát pozor

  • Je dobré (po začátku hodiny) zkontrolovat, že jsou žáci do prostředí Scratch přihlášeni (jejich přezdívku vidíte v pravém horním rohu okna). Výhodou přihlášení (kromě jiného) je, že se jejich práce automaticky ukládá.

V části Tvorba vlastní hry „Myší závody“,

  • bod 16, dohlédněte na to, aby žáci všechny čáry tvořící bludiště nakreslili silnou černou čarou. Důležité je, aby všechny čáry byly nakreslené stejnou barvou. Toho později využijeme v bodě 22 při detekci, kdy myška narazí do překážky.
  • bod 17, zkontrolujte, že žáci tři úvodní bloky pro inicializaci dali před cyklus, ne do těla cyklu.
  • bod 22, v okamžiku, kdy je v projektu více postav, tak každá postava má svůj vlastní scénář. Vždy se zobrazuje scénář vybrané postavy. Na to žáci často zapomínají a pak pracují ve scénáři jiné postavy nebo jsou zmateni, že jim už hotový scénář „zmizel“.
  • bod 22, nyní jsou v programu dvě podmínky, zkontrolujte, že obě podmínky jsou umístěné „za sebou“, tj. na stejné úrovni. Žáci často vloží jednu podmínku do druhé a pak se program pochopitelně chová jinak, než požadujeme.

Výsledný projekt si můžete prohlédnout na https://scratch.mit.edu/projects/483082545.

Zdroje:

  • Snímky obrazovek: autor Jan Preclík; zdroj vlastní, prostředí Scratch – Imagine, Program, Share. Scratch – Imagine, Program, Share[online]. Dostupné z: https://scratch.mit.edu/