Alternativy seminářového úkolu 8

Stránky: Moodle ZČU
Kurz: Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný)
Kniha: Alternativy seminářového úkolu 8
Vytiskl(a): Nepřihlášený host
Datum: neděle, 18. října 2026, 17.29

Zadání 1 – Cvakni terč

Zadání

Na plátně se po stisku Start začne v náhodných intervalech objevovat terč (kruh) na náhodných pozicích. Úkolem je kliknout do terče co nejrychleji.
Po každém úspěšném zásahu se uloží reakční čas (ms). Po 5 pokusech se zobrazí průměrná reakce, nejrychlejší a nejpomalejší čas. Lze zvolit Reset.


Cíl úlohy
  • Události onclick (tlačítko, klik na canvas).

  • Náhodné generování (pozice, interval).

  • Měření času (Date.now()), ukládání do pole a jednoduché statistiky.

  • Kreslení na canvas (kruh, text), práce se souřadnicemi kliknutí.


Vstupní podmínky
  • Soubory index.html, style.css, main.js.


Požadovaný výstup
  • Tlačítka Start a Reset.

  • Canvas s terčem, kliknutím do terče se započítá zásah a uloží reakční čas.

  • Po 5 pokusech vypiš průměr, min, max a seznam časů.


Doplňující pokyny
  • Nepoužívej šipkové funkce ani ternární operátor.

  • Podmínky piš explicitně (if (stav == true)).

  • Používej komentáře v češtině.

Cvakni terč

 

Klikni na Start. Po objevení terče klikni co nejrychleji.

Nejrychlejší: —

Nejpomalejší: —

Průměr: —

Časy: —

Řešení úlohy 1 – Cvakni terč

Co je zde splněno

  • Jiná funkčnost: hra na přesnost a reakci místo kreslení grafu.

  • Stále stejné stavebnice: náhoda, pole, statistiky, canvas, DOM, onclick.

  • Jasné ukončení po 5 pokusech, výpis min/max/průměru a seznamu časů.

Poznámky

  • Lze jednoduše přidat limit zásahů za čas (timer) nebo penalizaci za klik mimo terč (inkrementace „miss“).

Zadání 2 – Robotický vysavač

Zadání

Na začátku se vytvoří mřížka 10×10. Náhodně se vybere např. 15 znečištěných buněk. Robot (modrý čtverec) startuje vlevo nahoře.
Tlačítkem Krok se robot posune o jedno políčko podle jednoduché strategie „had“ (řádek po řádku). Pokud vstoupí do znečištěného pole, pole se vyčistí.
Tlačítkem Auto robot dělá kroky opakovaně (lze Stop). Reset vygeneruje nový nepořádek. Vypisuje se počet vyčištěných a zbývajících.


Cíl úlohy
  • Práce s mřížkou (2D pole – uložíme do 1D pole a přepočítáváme indexy).

  • Náhodný výběr unikátních pozic (bez duplicit).

  • Kreslení čtverců na canvas (čisté vs. špinavé vs. robot).

  • Řízení simulace: Krok / Auto / Stop / Reset.


Vstupní podmínky
  • Soubory index.html, style.css, main.js.


Požadovaný výstup
  • Tlačítka: Krok, Auto, Stop, Reset.

  • Canvas s mřížkou, vizuálně odlišené stavy buněk.

  • Textový výpis: „Vyčištěno: X / 15“, „Zbývá: Y“.


Doplňující pokyny
  • Žádné šipkové funkce ani ternární operátory.

  • Jednoduché komentáře v češtině.

  • Udrž jednoduchou strategii pohybu (bez složitého pathfindingu).

Robotický vysavač

Robotický vysavač

Vyčištěno: 0 / 0 · Zbývá: 0

Klikni na „Reset“ pro nový nepořádek nebo rovnou na „Auto“.

Řešení úlohy 2 – Robotický vysavač

Co je zde splněno
  • Jiná funkčnost: simulace úklidu mřížky (pohyb a změna stavu buněk), nikoliv graf.

  • Zachovány stejné stavebnice: náhoda (rozmístění špíny), pole, podmínky, cykly, canvas, DOM a tlačítka.

  • Dva režimy řízení (krokový a automatický), čisté rozhraní, jednoduchá strategie „had“.

Poznámky
  • Můžeš upravit počet špinavých buněk (parametr vyberUnikatniIndexy(15, N*N)).

  • Pro vyšší náročnost přidej překážky (neprůchozí buňky) nebo náhodnou strategii pohybu.