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
- LED rýchlo bliká (napr. 20×)
- Po každom bliknutí kontrolujeme, či hráč stlačil ENTER
- Náhodne vyberieme „výherné okienko“
- Ak hráč stlačí ENTER v tom kole → WIN
- 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
- 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
- Blikanie v kolách
- LED bliká dokopy 20 krát
- každé bliknutie je jedno kolo
- medzi bliknutiami sú krátke pauzy
- Tajné výherné kolo
- Arduino si na začiatku vylosuje tajné číslo, napr. kolo 8
- hráč toto číslo nevie
- 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
- Vyhodnotenie
- ak hráč:
- stlačí ENTER v tajnom kole → VÝHRA
- stlačí ENTER v inom kole → PREHRA
- nestlačí nič do konca 20. kola → PREHRA
- ak hráč:
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


