In dit spel vechten twee fantasiemonsters tegen elkaar. De schade (HP-verlies) die een aanval toebrengt, wordt bepaald door verschillende factoren: de statistieken van de aanvaller, de statistieken van de verdediger, het type van de aanval en eventuele verdedigende moves van de verdediger.
De statistieken van ieder monster bestaan uit de volgende onderdelen:
attack
: fysieke aanvalskrachtdefense
: fysieke verdedigingspecial attack
: speciale aanvalskracht (niet fysiek)special defense
: speciale verdediging (niet fysiek)Basisformule
Fysieke aanval:
\(damage = \frac{attack}{defense} \times 10\)
Speciale aanval: \(damage = \frac{special\ attack}{special\ defense} \times 10\)
Type-effectiviteit
Om het simpel te houden zijn er slechts drie types monsters en aanvallen waarmee we rekening moeten houden: vuur - water - gras. De respectievelijke sterktes en zwaktes van deze types worden weergegeven in onderstaande afbeelding:
vuur
> gras
gras
> water
water
> vuur
gras
< vuur
)Verdedigende moves
Het verdedigende monster kan net voor de aanval een verdedigende move gedaan hebben die de schade beperkt, indien deze goed anticipeert.
pareer
-> halveert fysieke schadeweerkaats
-> halveert speciale schadegeen
-> geen effectDit programma helpt de speler om de schade die een mogelijke aanval zal berokkenen te berekenen. Het programma vraagt achtereenvolgens:
fysiek
of speciaal
atk
en sp. atk
def
en sp. def
water
, vuur
, of gras
water
, vuur
, of gras
pareer
, weerkaats
, geen
Wanneer een speler negatieve stats invoert, moet er een foutmelding getoond worden dat dit niet mag. Indien het type aanval foutief ingevoerd, moet er gemeld worden dat het type aanval niet bestaat en wordt de schade automatisch 0. Anders wordt de effectiviteit van de aanval gemeld samen met de schade.
fysiek
20
15
14
12
water
gras
pareer
De aanval doet vermoedelijk 3.57 schade.
fysiek
20
-15
14
12
water
gras
pareer
Negatieve stats zijn niet toegestaan.
onzin
20
15
14
12
water
gras
pareer
De gekozen aanvalscategorie bestaat niet. Er wordt 0 schade toegebracht.