7月3号作业

怪物击杀:

#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;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值