#include <iostream>
using namespace std;
class Monster
{
public:
string m_name;
int m_hitpoint; //血量
int m_damage; //
int m_defense;
public:
Monster(string name, int hitpoint, int damage, int defense)
{
m_name = name;
m_hitpoint = hitpoint;
m_damage = damage;
m_defense = defense;
}
virtual ~Monster(){}
virtual int attack(Monster& m) = 0;
void figth(Monster& m)
{
while(1)
{
int hit = (*this).attack(m);
m.m_hitpoint -= hit;
if(m.m_hitpoint <= 0)
{
cout<<m.m_name<<"被打死了"<<endl;
break;
}
m.attack(*this);
m_hitpoint -= hit;
if(m_hitpoint <= 0)
{
cout<<m.m_name<<"被打死了"<<endl;
break;
}
}
showRes
用C++实现的一道面试大题-猫狗大战
这是一个使用C++编写的模拟猫狗大战的游戏代码。通过`Monster`基类定义了战斗生物的基本属性和行为,然后派生出`Cat`和`Dog`类,分别代表猫和狗,它们各自有不同的攻击计算方式。`figth`函数实现了双方的循环攻击,直到一方的生命值为0为止。最后,`showResult`方法用于展示战斗结果。
摘要由CSDN通过智能技术生成