用C++实现的一道面试大题-猫狗大战

这是一个使用C++编写的模拟猫狗大战的游戏代码。通过`Monster`基类定义了战斗生物的基本属性和行为,然后派生出`Cat`和`Dog`类,分别代表猫和狗,它们各自有不同的攻击计算方式。`figth`函数实现了双方的循环攻击,直到一方的生命值为0为止。最后,`showResult`方法用于展示战斗结果。
摘要由CSDN通过智能技术生成

#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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值