09.H Hra: „LED Reaction – STOP THE LIGHT!“

09.H Hra: „LED Reaction – STOP THE LIGHT!“

Princíp hry

  • LED najprv rýchlo bliká
  • hráč musí v správnom momente stlačiť ENTER
  • ak trafí „výherné okno“, vyhrá
  • ak nie, prehrá

Je to ako „stopovanie“ v hrách, keď treba niečo presne trafiť – zábavné + súťažné.


Potrebný hardvér

  • Arduino Uno/Mega
  • LED + rezistor
  • USB kábel

Zapojenie zostáva:





Pin 9 → Rezistor → Anóda LED
Katóda LED → GND

Ako to funguje

  1. LED rýchlo bliká (napr. 20×)
  2. Po každom bliknutí kontrolujeme, či hráč stlačil ENTER
  3. Náhodne vyberieme „výherné okienko“
  4. Ak hráč stlačí ENTER v tom kole → WIN
  5. Inak → LOSE

Kód hry – STOP THE LIGHT





int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("Hra: STOP THE LIGHT");
  Serial.println("Ciel: stlac ENTER v spravnom momente!");
}

void loop() {
  int vyherneOkno = random(5, 15);  // tajné výherné kolo
  int tlak = 0; // či hráč stlačil ENTER

  Serial.println("Priprav sa...");
  delay(1500);

  Serial.println("START!");

  for (int kolo = 1; kolo <= 20; kolo++) {
    digitalWrite(ledPin, HIGH);
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);

    // kontrola klávesnice
    if (Serial.available() > 0) {
      Serial.read(); // vymaže buffer
      tlak = kolo;   // zapamätáme si kedy stlačil
      break;
    }
  }

  if (tlak == 0) {
    Serial.println("NESTLACIL SI NIC - PREHRA :(");
  } else if (tlak == vyherneOkno) {
    Serial.print("PARADA! Trafene v kole ");
    Serial.println(tlak);
    Serial.println("VYHRA!");
  } else {
    Serial.print("Zle! Stlacil si v kole ");
    Serial.print(tlak);
    Serial.print(", ale vyherne bolo ");
    Serial.println(vyherneOkno);
    Serial.println("PREHRA!");
  }

  Serial.println("----------------------");
  delay(2000); // pauza pred dalsim kolom
}

Herné vyhodnotenie

Príklad v Serial Monitor:





Hra: STOP THE LIGHT
Ciel: stlac ENTER v spravnom momente!
Priprav sa...
START!
Zle! Stlacil si v kole 8, ale vyherne bolo 12
PREHRA!
----------------------

alebo:





PARADA! Trafene v kole 10
VYHRA!
----------------------

Prečo je to dobré pre výučbu

Tento kód učí:

  • čítanie vstupu z PC (Serial.available)
  • podmienenú logiku
  • cykly
  • random()
  • časovanie
  • premenné & porovnanie
  • game loop dizajn

A hlavne – deti s tým súťažia, takže sú motivované.


Úlohy pre žiakov

1. Jednoduché:

  • zmeniť rýchlosť blikania
  • predĺžiť počet kôl
  • meniť rozsah random()

2. Stredné:

  • pridať dva výsledky „WIN“ a „CLOSE“
    napr. ak je hráč 1 kolo vedľa výherného okna → vyhodnotiť ako „Almost!“

3. Ťažké:

  • zobraziť „skóre z 10 hier“
  • vypočítať percentuálnu úspešnosť
  • pridať zvuk (ak bude piezo)

Ďalší level (keď bude tlačidlo)

  • nahradíme ENTER reálnym tlačidlom
  • LED → READY → GO systém
  • mód „falošný štart“

Keď budeme mať RGB LED:

  • môžeme pridať farby pre výsledky
  • červená = prehra, zelená = výhra

*******************************************************************************

Hra: STOP THE LIGHT — presné pravidlá

1. Herný cieľ

Hráč sa snaží trafiť správny moment, keď LED bliká, tak že stlačí ENTER na klávesnici presne v tajnom kole.

2. Herné prostredie

  • hra beží v Serial Monitore
  • hráč sleduje LED na Arduine
  • hra prebieha v kolách (napr. 20 kôl)

3. Priebeh hry

  1. Príprava
    • Hra zobrazí v Serial Monitore text:
  • Priprav sa...
  • krátka pauza (napr. 1,5 s)

Začiatok

  • Hra vypíše:
    • START!
    • hráč sleduje LED
  1. Blikanie v kolách
    • LED bliká dokopy 20 krát
    • každé bliknutie je jedno kolo
    • medzi bliknutiami sú krátke pauzy
  2. Tajné výherné kolo
    • Arduino si na začiatku vylosuje tajné číslo, napr. kolo 8
    • hráč toto číslo nevie
  3. Stlačenie ENTER
    • počas bliknutia alebo počas medzičasov môže hráč stlačiť ENTER
    • keď stlačí ENTER, program si zapamätá v akom kole sa to stalo
  4. Vyhodnotenie
    • ak hráč:
      • stlačí ENTER v tajnom koleVÝHRA
      • stlačí ENTER v inom kolePREHRA
      • nestlačí nič do konca 20. kolaPREHRA

Dôležité detaily:

  • čísla kôl začínajú od 1
  • hráč má len jeden pokus na hru
  • výherné okno je napr. od 5 do 15, aby nebolo príliš na začiatku ani konci
  • po vyhodnotení dôjde ku krátkej pauze a hra sa reštartuje

Príklady situácií

Príklad 1 — výhra

  • tajné kolo: 10
  • hráč stlačí ENTER v kole 10
    → Výpis:




PARADA! Trafene v kole 10
VYHRA!

Príklad 2 — prehra (zlé kolo)

  • tajné kolo: 12
  • hráč stlačí ENTER v kole 8
    → Výpis:




Zle! Stlacil si v kole 8, ale vyherne bolo 12
PREHRA!

Príklad 3 — prehra (nestlačil nič)

  • tajné kolo: 7
  • hráč nestlačí ENTER vôbec
    → Výpis:




NESTLACIL SI NIC - PREHRA :(

Čo nesmie hráč robiť

  • nesmie stlačiť ENTER skôr ako začne START
  • nemá nekonečne veľa pokusov
  • nemá informáciu o tajnom kole — musí tipovať podľa rytmu

Kompetencie + dôvod pre školu

Táto hra rozvíja:

  • reakciu a pozornosť
  • časový odhad
  • logiku hry
  • prácu so Serial Monitorom
  • interakciu človek–stroj

Pre informatiku navyše učí:

  • random()
  • for()
  • if()
  • Serial.available()
  • delay()
  • stavový automat

Pridaj komentár