5. week

Milestone 1: game logic & JDBC (Slovak students)

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

  1. Kompletizácia zdrojových kódov z vypracovaných úloh.
  2. Spracovanie krátkeho videa, ktoré dokumentuje fungovanie hry.
  3. Kompletizácia návrhu hry a bonusových funkcionalít.
  4. 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é).