Hozzunk létre egy egyszerű alkalmazást, amivel egy középkori hadsereg működését modellezhetjük.
Minden egységnek vannak életerő pontjai (int) és támadási sebzése (int). Az egységeknek lehet páncéljuk.
Minden katonai egység számára elérhetőek az alábbi metódusok:
-
doDamage(): adja vissza az egység sebzését int-ben.
-
sufferDamage(int damage): a paraméterül kapott értéket levonja az egység életerő pontjaiból,
ha az egység páncélozott, akkor csak az érték felét vonjuk le.
Az íjász életereje 50 pont, sebzése 20.
Nem rendelkezik páncéllal.
A nehézlovas életereje 150 pont, sebzése 20.
Páncélozott.
A lovasság a csatát rohammal indítja,
így minden lovas első támadása háromszoros sebzést okoz,
az utána következők egyszereset.
A kardforgató életereje 100 pont, sebzése 10.
Vagy van páncélja vagy nincs.
Minden kardforgatónak van pajzsa, amivel kivédi az első őt ért csapást.
A pajzs az első kapott sebzés 100%-át felfogja, majd összetörik, tovább nem használható.
A hadseregnek az alábbi metódusai vannak:
-
addUnit(MilitaryUnit militaryUnit), amivel egy katonai egységet tudunk hozzáadni a sereghez,
-
damageAll(int damage), ami a sereg minden egységének életerejéből levonja a paraméterül kapott értéket,
valamint eltávolítja a seregből azokat az egységeket, melyeknek így 25 pont alá csökkent az életerejük
(azaz harcképtelenek vagy halottak), -
getArmyDamage(), ami visszaadja, hogy az aktuális támadással mennyi sebzést okoz a sereg összesen,
-
getArmySize(), ami visszaadja, hogy hány egységből áll a sereg.