Přeskočit obsah

Test reakční doby

Zadání

Vytvořte hru pro DT-Box, která vyzkouší hráčovy reflexy tím, že po náhodné době po spuštění rozsvítí displej a hráč musí co nejrychleji stisknout tlačítko. Následně hráč dostane výsledek v podobě hodnoty reprezentující dobu, kterou hráči trvalo zareagovat. Pokud hráč stiskne tlačítko před rozsvícením, je to neplatný pokus.

Rozšíření

  1. Na start hry a pro vyhodnocení přidejte jednoduchou animaci, kdy například výsledek zabliká.
  2. Změňte program tak, aby byl pro dva hráče, kteří budou soutěžit a program ukáže vítěze.

Evokace

Představte si situaci, kdy potřebujete co nejrychleji reagovat. Například při řízení.

  • Kde jinde jsou rychlé reakční schopnosti nezbytné? (sport, riziková povolání)
  • Kdy jste se naposledy ocitli v situaci, kdy bylo potřeba rychlé reakce?

Uvědomění

Jaké periferie knihovny dtbox budeme potřebovat?
Button, Display
Jaké datové reprezentace budeme potřebovat?
logické hodnoty pro správnou funkčnost obsluhy tlačítek
clickable = False
running = True
čas
random_time = random.uniform(2.2, 6.6)
start_time = time.time_ns()

Jak získám náhodnou hodnotu ze zadaného rozmezí?

random.uniform(2.2, 6.6)

Jak získám absolutní hodnotu?

abs(-3)

Jaká bude hlavní struktura kódu?

  • konstanta náhodného času
  • proměnná času počátku
  • obsluha tlačítek (start a konec)
  • smyčka zajišťující, že se displej rozsvítí ve správnou chvíli

Jaké jsou rizikové stavy?

  • stisknutí tlačítka před rozsvícením, je potřeba diskvalifikovat

Reflexe

Co se vám na řešení líbí/nelíbí?
Kde si dokážete představit použití vašeho řešení? (kontrola s odpověďmi u evokace)
Jak byste pozměnili projekt, aby byl lépe použitelný v praxi?
Které části implementace byly nejnáročnější?
Co byste poradili někomu, kdo se chystá vytvořit podobný projekt?