You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/sk/6-space-game/1-introduction/assignment.md

100 lines
5.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c8fc39a014d08247c082878122e2ba73",
"translation_date": "2025-10-24T21:49:14+00:00",
"source_file": "6-space-game/1-introduction/assignment.md",
"language_code": "sk"
}
-->
# Vytvorenie hry: Použitie návrhových vzorov
## Prehľad zadania
Využite svoje nové znalosti návrhových vzorov na vytvorenie jednoduchého prototypu hry! Toto zadanie vám pomôže precvičiť si architektonické vzory (dedičnosť alebo kompozíciu) a systém komunikácie pub/sub, o ktorom ste sa učili v lekcii.
## Pokyny
Vytvorte jednoduchú reprezentáciu hry, ktorá demonštruje návrhové vzory z tejto lekcie. Vaša hra by mala byť funkčná, ale nemusí obsahovať zložité grafické prvky zamerajte sa na základnú architektúru a komunikačné vzory.
### Požiadavky
**Vyberte si architektonický vzor:**
- **Možnosť A**: Použite dedičnosť založenú na triedach (ako príklad `GameObject``Movable``Hero`)
- **Možnosť B**: Použite kompozíciu (ako prístup s továrenskou funkciou a zmiešanými správaním)
**Implementujte komunikáciu:**
- **Zahrňte** triedu `EventEmitter` pre messaging pub/sub
- **Nastavte** aspoň 2-3 rôzne typy správ (napr. `PLAYER_MOVE`, `ENEMY_SPAWN`, `SCORE_UPDATE`)
- **Prepojte** vstup používateľa (klávesnica/myš) s hernými udalosťami prostredníctvom systému udalostí
**Herné prvky, ktoré treba zahrnúť:**
- Aspoň jednu postavu ovládanú hráčom
- Aspoň jeden ďalší herný objekt (nepriateľ, predmet na zbieranie alebo environmentálny prvok)
- Základnú interakciu medzi objektmi (kolízia, zbieranie alebo komunikácia)
### Návrhy na hry
**Jednoduché hry na zváženie:**
- **Hra Snake** Segmenty hada nasledujú hlavu, jedlo sa objavuje náhodne
- **Variácia Pong** Pálka reaguje na vstup, lopta sa odráža od stien
- **Hra na zber** Hráč sa pohybuje a zbiera predmety, pričom sa vyhýba prekážkam
- **Základy Tower Defense** Veže detekujú a strieľajú na pohybujúcich sa nepriateľov
### Usmernenia pre štruktúru kódu
```javascript
// Example starting structure
const Messages = {
// Define your game messages here
};
class EventEmitter {
// Your event system implementation
}
// Choose either class-based OR composition approach
// Class-based example:
class GameObject { /* base properties */ }
class Player extends GameObject { /* player-specific behavior */ }
// OR Composition example:
const gameObject = { /* base properties */ };
const movable = { /* movement behavior */ };
function createPlayer() { /* combine behaviors */ }
```
### Testovanie implementácie
**Overte, že váš kód funguje:**
- **Testovaním**, že objekty sa pohybujú alebo menia, keď sú spustené udalosti
- **Potvrdením**, že viaceré objekty môžu reagovať na tú istú udalosť
- **Kontrolou**, že môžete pridať nové správania bez úpravy existujúceho kódu
- **Zabezpečením**, že vstup z klávesnice/myši správne spúšťa herné udalosti
## Pokyny na odovzdanie
**Vaše odovzdanie by malo obsahovať:**
1. **JavaScript súbor(y)** s implementáciou hry
2. **HTML súbor** na spustenie a testovanie hry (môže byť jednoduchý)
3. **Komentáre** vysvetľujúce, ktorý vzor ste si vybrali a prečo
4. **Stručnú dokumentáciu** vašich typov správ a ich funkcie
## Hodnotiace kritériá
| Kritérium | Vynikajúce (3 body) | Dostatočné (2 body) | Potrebuje zlepšenie (1 bod) |
|-----------|---------------------|---------------------|-----------------------------|
| **Architektonický vzor** | Správne implementuje buď dedičnosť ALEBO kompozíciu s jasnou hierarchiou tried/objektov | Používa zvolený vzor s menšími chybami alebo nekonzistenciami | Pokúša sa použiť vzor, ale implementácia má významné problémy |
| **Implementácia pub/sub** | EventEmitter funguje správne s viacerými typmi správ a správnym tokom udalostí | Základný systém pub/sub funguje s určitým spracovaním udalostí | Systém udalostí je prítomný, ale nefunguje spoľahlivo |
| **Funkčnosť hry** | Tri alebo viac interaktívnych prvkov, ktoré komunikujú prostredníctvom udalostí | Dva interaktívne prvky so základnou komunikáciou udalostí | Jeden prvok reaguje na udalosti alebo základnú interakciu |
| **Kvalita kódu** | Čistý, dobre komentovaný kód s logickou organizáciou a moderným JavaScriptom | Všeobecne dobre organizovaný kód s dostatočnými komentármi | Kód funguje, ale chýba mu organizácia alebo jasné komentovanie |
**Bonusové body:**
- **Kreatívne herné mechaniky**, ktoré ukazujú zaujímavé použitie vzorov
- **Viacero metód vstupu** (klávesnica A myš)
- **Škálovateľná architektúra**, ktorá by sa dala ľahko rozšíriť o nové funkcie
---
**Zrieknutie sa zodpovednosti**:
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.