Motivation
Cieľom dnešného cvičenia je odovzdať vypracované úlohy 1, 2, 3 a 4. Vaše riešenie stručne odprezentujete vyučujúcemu počas 6. cvičenia.
Objectives
- Kompletizácia zdrojových kódov z vypracovaných úloh.
- Spracovanie krátkeho videa, ktoré dokumentuje fungovanie hry.
- Kompletizácia návrhu hry a bonusových funkcionalít.
- Odovzdanie zadania do systému GitLab.
Pokyny
- Úlohy odovzdajte prostredníctvom systému na správu verzií Git na katedrovom GitLab serveri.
- Termín pre odovzdanie úloh je do termínu vášho cvičenia v 6. týždni.
V rámci zadania budú kontrolované nasledovné body:
- Hra je plne funkčná, funguje podľa pravidiel, je ovládateľná konzolovým rozhraním (max 4b).
- Servisné komponenty sú funkčné a zakomponované do hry, hráč ich môže v priebehu hry použiť (max 2b).
- Kvalita kódu (max 3b), hlavne:
- rozdelenie tried do balíkov, názvy premenných, tried a metód,
- formátovanie kódu,
- členenie kódu do metód, dĺžka metód,
- čitateľnosť kódu, vyhnúť sa špagetovému kódu,
- oddelenie zámerov v kóde, napr. jadra a logiky od používateľského rozhrania, členenie funkcionalít do metód
- atď.
- JUnit testy pre vytvorené servisné komponenty (max 1b).
- Bonus: Návrh architektúry a logiky hry (max 2 bonusové body) a funkcionality nad rámec zadania (hodnotenie v závislosti od spracovania)
Instructions
Step 1: Zdrojový kód hry
Task 1.1
Vypracované úlohy cvičení odovzdajte prostredníctvom systému na správu verzií Git na školskom GitLab serveri https://git.kpi.fei.tuke.sk.
Ak váš projekt využíva nejaké ďalšie zdroje, napr. súbory pre definovanie rozloženia hernej plochy, nezabudnite nahrať do repozitára aj tie.
Warning
Využite súbor .gitignore
na definovanie adresárov a súborov, ktoré sa do repozitára nenahrajú (napr. adresáre build
, out
, target
, .idea
, ...).
Step 2: Krátke video z hrania hry
Task 2.1
Vytvorte krátke video (max. 3 min) s ukážkou hry, kde predvediete funkcionality hry. Vo videu predveďte vypísanie herného poľa, ovládanie v konzolovom rozhraní, ťahy hráča, úspešné a neúspešné dohratie hry (výhra, prehra resp. ukončenie hry), zadávanie platných a neplatných vstupov od hráča, servisné komponenty zakomponované v hre, spustenie a úspešná kontrola JUnit testov.
Vo videu sa pochváľte aj funkcionalitami, ktoré ste vytvorili nad rámec požadovaných úloh ;)
Na vytvorenie videa môžete použiť akýkoľvek nástroj na zaznamenávanie obrazovky a strihanie videa. Video nahrajte na web cez niektorú zo služieb, napr. YouTube, Dropbox, OneDrive, a odkaz na video uveďte v súbore README.md
v koreňovom adresári vášho projektu (video prosím nenahrávajte do repozitára).
Comment
Pri nahrávaní videa na web skontrolujte nastavenia jeho viditeľnosti, aby si ho mohli prehrať vaši cvičiaci.
Step 3: Bonus - Návrh hry a funkcionality navyše
Task 3.1
Návrh architektúry a logiky hry, ktorý ste vypracovali v rámci úlohy č. 1, a bonusové funkcionality hry skompletizujte a nahrajte do repozitára v systéme GitLab.
Diagramy, exportované do formátu .png
alebo .pdf
, prípadne ďalšie materiály, ktoré ste vytvorili vo fáze návrhu, umiestnite do oddeleného adresára mimo zdrojových kódov (popri adresári src
vytvorte nový adresár, napr. design
).
Zabezpečte, aby boli diagramy a všetky texty dobre čitateľné. Dbajte na úhľadnú úpravu. Obrázky diagramov môžu byť aj odfotené fotoaparátom či naskenované, ak ste návrh vypracovali v papierovej forme, pričom samozrejme úprava takto kreslených diagramov by mala byť úhľadná.
Warning
Keďže návrh architektúry programu prebieha vo fáze ešte pred implementáciou, v kontexte odovzdávky nemá zmysel diagramy generovať dodatočne z už vytvoreného zdrojového kódu. Takéto diagramy sú len formou dokumentácie zdrojového kódu a neodrážajú proces analýzy problému, ktorému sa 1. úloha venovala.
Ďalšie bonusové body je možné získať napríklad za:
- implementáciu s využitím návrhových vzorov,
- prispôsobenie konzolového rozhrania s ohľadom na používateľa (prepracovanejší výpis herného poľa a ovládanie, využitie zafarbenia výstupu, menu v hre, nápoveda s ovládaním a pravidlami hry, atď.),
- rôzne režimy hrania hry, úrovne (levely) s rôznou náročnosťou,
- náhodné generovanie herného poľa, pokiaľ to nie je nutnosťou už z povahy hry,
- jednotkové (JUnit) testy pre overenie funkcionalít hry (mimo servisných služieb score, comment a rating),
- ďalšie služby, napr. record & replay,
- iné vymoženosti v hre, podľa vlastnej kreativity.
Step 4: Kompletizácia zadania
Task 4.1
Skompletizujte a skontrolujte váš projekt na katedrovom GitLab serveri.
Do termínu vášho cvičenia v 6. týždni môžete svoj projekt opakovane aktualizovať.
Projekt by mal obsahovať:
- zdrojový kód vašej hry a služieb,
- zdrojový kód JUnit testov,
- súbor
README.md
obsahujúci odkaz na krátke video z hry, - adresár s návrhom (voliteľné).