FerryBoat (Delegáty)

Cvičení

Návrhové vzory

SSŠVT


FerryBoat (Delegáty)

Naprogramujte hru na "převozníka".

Zvolte libovolnou dotnetovou technologii:

Pokud jde o architekturu, rozdělte hru minimálně na 3 moduly (třídy):

Nejprve ukázka, jak jedna z implementací takové hry může vypadat:

  1. Stáhněte si na lokální počítač soubor puzzle.swf.
  2. Hra je napsaná v technologii Adobe Flash, která se ovšem nyní už nesmí používat kvůli bezpečnostním rizikům.
  3. Otevřete si v prohlížeči tuto stránku: https://ruffle.rs/demo/
  4. Nahoře máte tlačítko "Browse...", které otevře dialog pro výběr SWF souboru, který se má spustit.
  5. Vyberte soubor puzzle.swf, který jste si předtím stáhli.
  6. Popis hry je v čínštině, ale stačí kliknout na největší modré tlačítko (kulaté).
  7. Objeví se skupinka lidí na břehu řeky a vor. Vor se ovládá páčkami s červenou hlavou.
  8. Vaším úkolem je přepravit všechny lidi na druhý břeh řeky. A minimalizovat počet "přejezdů" řeky.
  9. Postavy hry (lidé):
  10. Je to logická hra. Má svá pravidla:

Až budete programovat svoji verzi Převozníka, zkuste ho udělat obecně:

Poznámka:
Delegáty jsou mimo jiné prostředkem, jak lze nahradit používání interface-ů pro "loose coupling" částí naší appky.

Tím, že dodržíte výše zmíněné požadavky, naprogramujete vlastně "generickou" hru na převozníka.

Hra bude totiž jen skořápkou spousty možných her. Skořápku definuje modul GameEngine. Konkrétní hra vznikne tím, že implementujete pravidla hry v modulu Referee. Oba moduly spolu propojí modul Game. Tento "hlavní" modul může (ale nemusí) obsahovat i GUI/CUI celé aplikace.

Hodně štěstí! Happy coding!