Objektovo-orientované programovanie, ak. rok 2023/24

Cvičenie 1

(k prednáške 1)

Vítajte na prvom cvičení z Objektovo-orientovaného programovania. Základné informácie o organizácií cvičení pozrite na stránke Cvičenia.


Softvér

Na programovanie v Jave budeme používať:

Namiesto prostredia Eclipse môžete použiť aj iné prostredie. Na ďalšom cvičení vyskúšate aj základné nástroje pre prácu s Javou z príkazového riadku.

Vytvorte v Eclipse prázdny projekt (pre workspace si vytvorte vlastný podadresár v adresári, do ktorého môžete zapisovať, pravdepodobne C:\work). Do projektu pridajte súbor HelloWorld.java a preložte ho a spusťte. Pri vytváraní projektu v Eclipse sa uistite, že je zrušená voľba Create module-info.java file. Taktiež zrušte názov uvedený v poli označenom ako Package. Balíky a moduly služia ako vyššie jednotky organizácie kódu a majú význam pri rozsiahlejšich programoch.

^


Úlohy

  1. Vyskúšajte kód hry s obrami a rytiermi z prednášky (použite finálnu verziu, ktorá je v adresári Game1). V Eclipse stačí po rozbalení archívu potiahnuť súbory s implementáciou tried do nového Java projektu, ktorý predtým vytvoríte. Skúste meniť počty jednotlivých druhov obrov v slučkách a sledujte ako sa mení výpis.
  2. Všimnite si volanie metódy revenge() v metóde attack() triedy Knight. Ako parameter vystupuje kľúčové slovo this, ktoré predstavuje referenciu na aktuálny alebo, lepšie povedané, aktívny objekt (metóda ktorého sa práve vykonáva). Pridajte do tejto metódy výpis referencie this (System.out.println(this)) a všimnite si, že je pri strete každej dvojice obor–rytier vypísané číslo iné. Prečo?
  3. Vytvorte ďalšiu triedu odvodenú od triedy BadOgre. Pridajte do nej jej vlastnú metódu revenge(). Pridajte objekty nového druhu obrov do poľa obrov. Je potrebné upraviť slučku stretu?
  4. Vytvorte ďalšiu triedu odvodenú od triedy Knight. Tento druh rytiera pri útoku oberá obra o viac energie. Pridajte objekty nového druhu rytierov do poľa rytierov. Je teraz potrebné upraviť slučku stretu? Zrátajte koľko rôznych kombinácií rytierov a obrov takto riešite.
  5. (nepovinná úloha) Upravte spôsob odoberania energie. Ak chcete zapojiť náhodnosť, môžete použiť metódu random() triedy Math, ktorá poskytuje aj rad iných matematických funkcií. Zavoláte ju takto:
    Math.random();
    Vhodne prepočítaný výsledok (a konvertovaný na int) priraďte do vlastnej premennej.

^



Valentino Vranić
vranic at stuba.sk