Schadensberechnung in C++
-
hi
kann mir bitte jemand von euch helfen.
Und zwar bei einer Schadensberechnung.
Ich habe folgende Werte daweil:HP: 100, PZ(Panzerung/Schild): 150
Nun greift jemand an,aber zuerst will er meine Panzerung zerstören,dazu greift er an... 200 beträgt der Schaden und wenn er PZ nun zersört(200 - 150),dann bleibt ihm nur noch "50" Angriffsschaden übrig und da das Schild bzw. die Panzerung zerstört ist,greift er mein Leben an(HP):
100 - 50 = 50.D.h dass ich nur noch 50HP und 0PZ hab.
So stelle ich mir das vor.int atk_ich(int waffe[], int gegner_hp_pz[]) // waffe[1]: 240DMG; mehrere Waffen zur Auswahl, gegner_hp_pz: Array aus zwei elemtenten -> gegner_hp_pz[2] = { 200, 70 }; { if(gegner_hp_pz[1] == false) //Wenn Panzerung nicht vorhanden ist bzw. man keiner mehr hat { gegner_hp_pz[0] = gegner_hp_pz[0] - waffe[1]; //Waffe[1] nur beispiel!!! return gegner_hp_pz[0]; } else { gegner_hp_pz[1] = gegner_hp_pz[1] - waffe[1]; // 70pz-240dmg = -170 gegner_hp_pz[0] = gegner_hp_pz[0] - gegner_hp_pz[1]; // 200 + gegner_hp_pz[1] = 30HP return gegner_hp_pz[0]; } }Also ich weiß nicht ob das überhaupt stimmt,hab es nur so mal hingeschrieben,wie mein echter Code aussieht,aber nur halt andere Namen und so.
Hier mal meine Fragen:1. Könnte ich diese Funktion kompilieren, oder würde ein Fehler auftreten?
2. Wenn Fehler bzw. etwas falsches drinnen liegt,was könnte ich machen,damit es richtig ist?Ich freue mich über eure Antworten und bedanke mich auch schon im Voraus

Matematicer grüßt euch
-
Mathematicer schrieb:
1. Könnte ich diese Funktion kompilieren, oder würde ein Fehler auftreten?
???
Diese Frage beantwortet Dein Compiler Dir abschliessend.
Grüsse
*this
-
man ist das nen Dünnschiss ^^
unsigned int i_attac(const unsigned int attac, const unsigned int health, const unsigned int protect) { if (attac == 0) return 0; if (protect > attac) return health; int last_health = health - (attac - protect); return (last_health < 0 ? 0 : last_health); }... so könntest du bsw. schonmal berechnen, wie viel Leben der nach dem Angriff noch hat.