Úkol 6: Žralok

Program | Zadání v krocích | Zadání formou úkolu

Příběh hry

Nacházíte se na dně oceánu. Bydlí zde žralok a rybičky, žralok potřebuje růst, proto musí jíst rybičky. Ale pozor na potápěče!

Cíl hry

Žák si upevní použití nekonečného cyklu a neúplné podmínky a seznámí se s využitím čekání po určitý čas, skrýváním postav a samovolným pohybem postavy.

Vstupní požadavky na žáka

  • Algoritmizace: posloupnost příkazů, reakce na vstup uživatele, nekonečný cyklus, neúplná podmínka
  • Scratch: události klávesnice, událost po startu, práce s postavami a pozadím, práce s kostýmy, velikost postavy, pohyb postavy pomocí šipek, náhodná pozice, opakuj stále, podmínka když, vyhodnocení dotyku

Nové dovednosti:

  • Algoritmizace: čekání po daný čas
  • Scratch: čekej x sekund, pohyb pomocí klouzání, skrývání a ukazování postav

Zadání pro žáky v krocích

  1. Vyber vhodnou scénu.
  2. Přidej postavu žraloka, uprav jeho velikost a zajisti jeho pohyb na šipky.
  3. Přidej postavu ryby, uprav její velikost, zajisti, aby startovala na náhodné pozici a po celou dobu programu se klouzala náhodným směrem vhodnou rychlostí.
  4. Žralok rád jí ryby:
    • Žralok: otevře pusu, zavře pusu a trošku se zvětší.
    • Ryba: skryje se, chvíli počká a objeví se jinak barevná na náhodné pozici. Nápověda: Budeš potřebovat jedno stálé opakování pro pohyb ryby a druhé stálé opakování pro dotek se žralokem, pokud by se vše dalo do jednoho a ryba byla zrovna ve fázi klouzání se, nemohla by vyhodnotit podmínku doteku se žralokem. Předtím než se ryba skryje využijte příkaz čekej 0.1s, je to důležité kvůli tomu, aby si i žralok stihl vyhodnotit, že rybu snědl než ryba zmizí.
  5. Přidej potápěče, který začíná na náhodné pozici a pohybuje se stejným způsobem jako ryba, ale trošku pomaleji.
  6. Žralok si musí dát na potápěče pozor, vždy když se jej začne dotýkat, tak se žralok začne maličko zmenšovat.
  7. Bonusové úkoly: 
    • V moři je více ryb naráz a každá žraloka zvětší o jinou velikost.
    • V moři je více pro žraloka nebezpečných objektů. Mohou jej zmenšovat, vrátit na výchozí velikost, nebo cokoliv tě napadne.

Zadání pro žáky ve formě úkolu

  • Vytvoř podmořský svět, ve kterém žije žralok, kterého ovládáš pomocí šipek, a ryba, která stále plave. Žralok potřebuje růst a k tomu mu pomáhá to, že jí ryby.
  • Zároveň si žralok musí dávat pozor na potápěče, protože při každém dotyku s ním se zmenšuje.
  • Bonusové úkoly: 
    • V moři je více ryb naráz a každá žraloka zvětší o jinou velikost.
    • V moři je více pro žraloka nebezpečných objektů. Mohou jej zmenšovat, vrátit na výchozí velikost, nebo cokoliv tě napadne.

Program

Řešení a metodické poznámky

  1. Vybereme podmořské pozadí.
  2. Doporučení: Pro tento projekt je vhodné postavy pojmenovat česky, kvůli přehlednosti při řešení interakce postav.
  3. Přidáme postavu žraloka, upravíme jeho velikost a zajistíme jeho pohyb na šipky. Aby se žralok neschovával za ostatní postavy umístíme jej do popředí (přejdi na vrstvu popředí).
  4. Přidáme postavu ryby, upravíme její velikost, ryba startuje na náhodné pozici (skoč na náhodnou pozici) a po scéně se neustále klouže na náhodné pozice (klouzej x sekund na náhodnou pozici). Čas pro klouzání můžeme určit dle uvážení, čím vyšší číslo tím pomalejší pohyb, čím nižší číslo, tím rychlejší pohyb. Zároveň by bylo dobré naprogramovat, aby se vždy ryba po startu ukázala (ukaž se), je to z důvodu, že když bychom program zastavili zrovna ve fázi, kdy je ryba skrytá (snědená žralokem), neměla by se jak objevit.
  5. Přidáme postavu potápěče, který startuje na náhodné pozici a pohybuje se stejným způsobem jako ryba (klouzáním), akorát trochu pomaleji (čas klouzání zvolíme vyšší číslo, než máme u ryby).
  6. Interakce postav:
    • U žraloka: Žralok stále (opakuj stále) vyhodnocuje, jestli se ryby dotýká, pokud ano tak otevře pusu, pár setin počká, zavře pusu (změna kostýmu) a zvětší se. Zároveň vyhodnocuje, zda se dotýká potápěče, v tom případě se po celou dobu dotyku zmenšuje.
    • U ryby: Ryba stále vyhodnocuje, zda se dotýká žraloka, po kontaktu se žralokem 0.1 s počká (čekej 0.1 s) , z důvodu, aby i žralok měl dost času vyhodnotit, že se společně dotkli (pokud bychom toto čekání vynechali mohla by nastat situace, že by ryba zmizela, ale žralok to vůbec nezaregistroval), skryje se (skryj se), počká, skočí na náhodnou pozici, změní kostým a ukáže se (ukaž se). U ryby použijeme samostatný nekonečný cyklus (opakuj stále) pro pohyb a samostatný pro interakci se žralokem, pokud bychom i podmínku pro pohyb dali do jednoho nekonečného cyklu a ryba zrovna byla ve fázi klouzání nemohla by zároveň vyhodnotit podmínku interakce se žralokem.
  7. Bonusové úkoly fungují na stejném principu, jako ryba a potápěč. To, jak se budou nové postavy pohybovat a jaká bude jejich interakce je na fantazii žáků.

Možné problémy a komplikace

  • Postava se pohybuje hlavou dolů – není nastaven způsob otáčení vlevo – vpravo.
  • Žralok se schovává pod ostatní postavy – není nastaveno, že má být v popředí.
  • Ryba není po startu vidět – u ryby chybí po startu ukaž se a program zrovna skončil se skrytou rybou.
  • Ryba se skryje dřív, než žralok stihne zareagovat – doplňte k rybě čekání 0.1s předtím, než se skryje.
  • Žralok je po startu hry obří nebo miniaturní – po startu není nastavena výchozí velikost žraloka.
  • Ryba či potápěč se pohybují příliš rychle nebo příliš pomalu – je nevhodně nastavený čas po který se má postava klouzat. Čím vyšší číslo tím pomalejší pohyb, čím nižší číslo, tím rychlejší pohyb.