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 > grasgras > waterwater > vuurgras < 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 speciaalatk en sp. atkdef en sp. defwater, vuur, of graswater, vuur, of graspareer, weerkaats, geenWanneer 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.