求助 类的问题
#include<iostream>#include<string>using namespace std;class Soldier{protected: int maxHP,HP; int maxSP,SP; int damage,exp,level,drugNum; string name;public: Soldier(string n):name(n) { maxHP=HP=100; maxSP=SP=100; damage=20; exp=0; level=1; drugNum=5; } void makeDecision(Soldier enemy); void attack(Soldier enemy); void rest(); void takingDrug(); void ExpUp(); void show();};void Soldier::makeDecision(Soldier enemy){ if(HP>=maxHP/2&&SP>=0.3*maxSP) { this->attack(enemy); } else if(HP<maxHP/2) { takingDrug(); } else if(HP>=maxHP/2&&SP<0.3*maxSP) { rest(); } else;}void Soldier::attack(Soldier enemy){ SP-=10; enemy.HP-=damage; if(enemy.HP<=0) { drugNum+=enemy.drugNum; cout<<enemy.name<<"死亡,战斗结束"<<endl; exit(0); } else; exp+=5; if( exp>=20) { ExpUp(); } else;}void Soldier::rest(){ HP+=maxHP/2; if(HP>maxHP) { HP=maxHP; } SP+=maxSP/2; if(HP>maxHP) { SP=maxSP; }}void Soldier::takingDrug(){ if(drugNum>0) { drugNum--; HP+=maxHP/2; if(HP>maxHP) { HP=maxHP; } } else;}void Soldier::ExpUp(){ exp-=20; level++; maxHP+=20; maxSP+=20; damage+=20;}void Soldier::show(){ cout<<name<<"当前情况:"<<"生命:"<<HP<<" 体力:"<<SP<<" 攻击力:"<<damage<<endl<<endl;}int main(){ Soldier me("wangfan"),en("sail"); me.makeDecision(en); en.makeDecision(me); me.show(); en.show(); me.makeDecision(en); en.makeDecision(me); me.show(); en.show(); return 0;}