1.
2.
#include <iostream>
using namespace std;
int blood=10000;
class Hero
{
protected:
string name;
int hp;
int attck;
public:
Hero(){}
Hero(string name,int hp,int attck):name(name),hp(hp),attck(attck){}
virtual void Atk() //对于有虚函数的类,会提供一个虚指针,指向虚函数表
{
blood-=0;
}
};
class AP:public Hero
{
private:
int ap_atk=100;
public:
AP(){}
AP(string name,int hp,int attck):Hero(name,hp,attck){}
void Atk() //对于有虚函数的类,会提供一个虚指针,指向虚函数表
{
cout<<name<<"攻击了怪兽"<<endl;
blood-=(attck+ap_atk);
}
};
class AD:public Hero
{
private:
int ad_atk=50;
public:
AD(){}
AD(string name,int hp,int attck):Hero(name,hp,attck){}
void Atk() //对于有虚函数的类,会提供一个虚指针,指向虚函数表
{
cout<<name<<"攻击了怪兽"<<endl;
blood-=(attck+ad_atk);
}
};
int main()
{
AP p1("肘子可",100,50);
AD p2("王贰熊",200,50);
int count=0;
while (blood>0) {
p1.Atk();
if(blood<=0)
{
cout<<"怪兽被消灭!"<<endl;
break;
}else {
cout<<"怪兽血量:"<<blood<<endl;
}
p2.Atk();
if(blood<=0)
{
cout<<"怪兽被消灭!"<<endl;
}else {
cout<<"怪兽血量:"<<blood<<endl;
}
count++;
}
cout<<"战斗持续了"<<count<<"回合"<<endl;
return 0;
}