1.思维导图
2.代码实现
#include <iostream>
using namespace std;
int blood = 10000;
class Hero
{
protected:
string name;
int hp;
int attck;
public:
Hero()
{
cout<<"Hero no parameters"<<endl;
}
Hero(string name,int hp,int attck)
{
this->name = name;
this->hp = hp;
this->attck = attck;
cout<<"Hero haave parameters"<<endl;
}
virtual void Atk()
{
blood-=0;
}
};
class Master:public Hero
{
int ap_atk = 50;
public:
Master()
{
cout<<"Master no parameters"<<endl;
}
Master(string name,int hp,int attck,int ap_atk):Hero (name,hp,attck)
{
this->ap_atk = ap_atk;
cout<<"Master haave parameters"<<endl;
}
void Atk()
{
blood-=(attck - ap_atk);
cout<<"Master blood"<<blood<<endl;
}
};
class Shooter:public Hero
{
int ac_atk = 100;
public:
Shooter()
{
cout<<"Shooter no parameters"<<endl;
}
Shooter(string name,int hp,int attck,int ac_atk):Hero (name,hp,attck)
{
this->ac_atk = ac_atk;
cout<<"Shooter haave parameters"<<endl;
}
void Atk()
{
blood-=(attck - ac_atk);
cout<<"shooter blood"<<blood<<endl;
}
};
int main()
{
Hero *p1 = new Master ("安琪拉",200,700,50);
Hero *p2 = new Shooter ("艾琳",200,600,100);
while(blood > 0)
{
p1->Atk();
p2->Atk();
cout<<"monster blood"<<blood<<endl;
}
return 0;
}
result
Hero haave parameters
Shooter haave parameters Hero haave parameters
Shooter haave parameters
Master blood9350
shooter blood8850
monster blood8850
Master blood8200
shooter blood7700
monster blood7700
Master blood7050
shooter blood6550
monster blood6550
Master blood5900
shooter blood5400
monster blood5400
Master blood4750
shooter blood4250
monster blood4250
Master blood3600
shooter blood3100
monster blood3100
Master blood2450
shooter blood1950
monster blood1950
Master blood1300
shooter blood800
monster blood800
Master blood150
shooter blood-350