Problemset 1: Training

Ciele

  • Precvičenie základných princípov objektovo orientovaného programovania.

Pokyny

  • Posledný termín hodnotenia projektov v GitLab-e systémom Arena bude v piatok 9. novembra 2018 o 23.59.
  • Pri práci na zadaní dodržiavajte etický kódex!

Poznámka


  • Testovanie v Arene je spustené od 2.11.2018 16:00.
  • Aktualizujte si knižnicu na verziu 2.3.0, keďže tá sa používa v Arene.

Úlohy

Vypracujte všetky primárne aj sekundárne (doplňujúce) úlohy z cvičení Lab #2, Lab #3,Lab #4 a Lab #5.

Odovzdávanie

Zadanie sa odovzdáva prostredníctvom systému na správu verzií Git na školskom GitLab serveri https://git.kpi.fei.tuke.sk. Názov Git projektu musí byť project-ellen-2018.

Štruktúra projektu

Kódovanie všetkých odovzdávaných súborov musí byť UTF8. Pri názvoch vytváraných súborov a priečinkov záleží na veľkosti písmen! Štruktúra vášho projektu project-ellen-2018 bude vyzerať nasledovne:

. // root adresar repozitara
├── gradle  // obsahuje subory nastroja gradle
├── src
│  ├── main
│  │  ├── java
│  │  │  └── sk
│  │  │     └── tuke
│  │  │        └── kpi
│  │  │           └── oop
│  │  │              └── game
│  │  │                 ├── actions
│  │  │                 │  └── PerpetualReactorHeating.java
│  │  │                 ├── tools
│  │  │                 │  ├── BreakableTool.java
│  │  │                 │  ├── FireExtinguisher.java
│  │  │                 │  ├── Hammer.java
│  │  │                 │  ├── Mjolnir.java
│  │  │                 │  ├── Usable.java
│  │  │                 │  └── Wrench.java
│  │  │                 ├── ChainBomb.java
│  │  │                 ├── Computer.java
│  │  │                 ├── Cooler.java
│  │  │                 ├── DefectiveLight.java
│  │  │                 ├── EnergyConsumer.java
│  │  │                 ├── Gameplay.java  // scenar nebude testovany
│  │  │                 ├── Helicopter.java
│  │  │                 ├── Light.java
│  │  │                 ├── PowerSwitch.java
│  │  │                 ├── Reactor.java
│  │  │                 ├── Repairable.java
│  │  │                 ├── SmartCooler.java
│  │  │                 ├── Switchable.java
│  │  │                 ├── Teleport.java
│  │  │                 └── TimeBomb.java
│  │  └── resources
│  │     └── sprites  // obsahuje sprity actorov
├── .editorconfig
├── .gitignore
├── build.gradle.kts
├── gradlew
├── gradlew.bat
├── README.md
└── settings.gradle.kts

Upozornenie

Git repozitár vytvorte v adresári projektu (adresár obsahuje súbor build.gradle.kts). Nezabudnite v rámci git repozitára nakonfigurovať aj remote repozitár s adresou vášho projektu project-ellen-2018, ktorý si vytvoríte na GitLabe.

Upozornenie

Je dôležité, aby váš repozitár zachoval uvedenú štruktúru. Ak sa niektorý zo súborov síce v repozitári nachádza, ale v inom priečinku, bude to považované za chybu.

Obsah súboru README.md nech má nasledovný tvar:

GROUP: 01

Poznámka

Hodnota GROUP uvádza vašu skupinu, ktorú navštevujete na cvičeniach. To, ktorú skupinu navštevujete, si skontrolujte v rozvrhu predmetu v systéme MAIS.

Upozornenie

Informácia pre opakujúcich
Opakujúci študenti by mali do súboru README.md uviesť číslo skupiny z nasledujúceho zoznamu, podľa toho, ktorý študijný program študujú:
  • Informatika a Počítačové modelovanie: skupina 31
  • Hospodárska informatika a Inteligentné systémy: skupina 32

Závislosti projektu

Pri preklade a testovaní projektu budú predpokladané nasledovné nastavenia závislostí v súbore build.gradle.kts:

val gamelibVersion = "2.3.0"

dependencies {
    implementation("sk.tuke.kpi.gamelib:gamelib-framework:$gamelibVersion")
}

Hodnotenie a testovanie

Za zadanie môžete získať max. 10 bodov. Počet získaných bodov sa bude odrážať od výsledku testov, ktorými vaše zadanie úspešne prejde. Overovať sa bude:

  • Štruktúra vášho projektu (či sa v ňom nachádzajú potrebné súbory).
  • Statická analýza vášho kódu pomocou nástroja PMD. Váš kód sa bude kontrolovať vzhľadom na tieto pravidlá. Nástroj PMD môžete spúšťať aj lokálne, napríklad pomocou nástroja Gradle (viď návod na nastavenie).
  • Funkčnosť vami vytvorených tried a metód voči úlohám definovaným v zadaní pomocou unit testov.

Za striktnú chybu sa bude považovať:

  • Ak počas prekladu dôjde ku chybe.
  • Ak v implementácií vašich tried používate iné ako privátne členské premenné.

Po spustení testovania sa vaše riešenia budú testovať každé 2 hodiny, teda 00:00, 02:00, 04:00 atď. Spracovanie všetkých projektov trvá nejaký čas. O vašich výsledkoch sa budete môcť dozvedieť pomocou RSS kanála alebo sledovaním URL adresy so zoznamom všetkých vašich hodnotení. Obe adresy vám prídu e-mailom na školskú e-mailovú adresu z testovacej platformy Arena len raz. Žiadne ďalšie maily s hodnotením už chodiť nebudú. Nový výsledok testu sa na stránke Areny zobrazí len ak ste od posledného testovania pridali do repozitára na GitLab serveri nový commit.

Vaše riešenia opäť prejdú kontrolou originality. Preto sa pri práci na vašom zadaní správajte podľa pravidiel etického kódexu! V prípade, že odovzdáte zadanie, ktoré nie je vaše, budete vylúčení z predmetu!