怪物击杀:
#include <iostream>
class HERO
{
protected:
std::string NAME;
int HP;
int ATTCK;
public:
int blood;
HERO(){}
explicit HERO(std::string name,int hp,int attck):NAME(std::move(name)),HP(hp),ATTCK(attck){}
virtual int Atk()
{
blood-=0;
return blood;
}
};
class Mage:public HERO
{
private:
int ap_atk=50;
public:
Mage(std::string name,int hp,int attck)
{
this->NAME=name;
this->HP=hp;
this->ATTCK=attck;
}
virtual int Atk()override
{
blood=ATTCK+ap_atk;
return blood;
}
};
class Shooter:public HERO
{
private:
int ap_atk=100;
public:
Shooter(std::string name,int hp,int attck)
{
this->NAME=name;
this->HP=hp;
this->ATTCK=attck;
}
virtual int Atk()override
{
blood=ATTCK+ap_atk;
return blood;
}
};
void Attack_target(int *target,HERO *hero)
{
*target-=hero->Atk();
}
int main()
{
int monster=10000;
unsigned int Attack_Num_hu=0;
unsigned int Attack_Num_zhu=0;
Mage hu("hu",800,80);
Shooter zhu("zhu",600,60);
while(monster>=0)
{
Attack_target(&monster,&hu);
Attack_Num_hu++;
Attack_target(&monster,&zhu);
Attack_Num_zhu++;
}
monster=0;
std::cout << "怪物已被击杀:monster HP:" << monster <<std::endl;
std::cout << "hu攻击次数:" << Attack_Num_hu <<std::endl;
std::cout << "zhu攻击次数:" << Attack_Num_zhu <<std::endl;
}