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

5.3 KiB

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 GameObjectMovableHero)
  • 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

// 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. 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.