带武器的游戏角色类


  1. /*     
    2. 
    3. 2. 
    4. 
    5.  3. *Copyright   (c)  2016,烟台大学计算机学院   
    6. 
    7.   4.   
    8. 
    9.   5. *All rights reserved.    
    10. 
    11.  6.   
    12. 
    13.   7. *文件名称:test.cpp      
    14. 
    15.8.     
    16. 
    17. 9. *作者: 武聪     
    18. 
    19. 10.     
    20. 
    21. 11. *完成日期:2016年5月8日      
    22. 
    23.12.   
    24. 
    25.   13. *版本号:v1.0    
    26. 
    27.  14. *问题描述:游戏中的角色类 
    28. 
    29.15. *输入描述:游戏中的角色类 
    30. 
    31.16. *程序输出:游戏结果 
    32. 
    33. 17. */  
    34.#include <iostream>
    using namespace std;
    class Weapon
    {
    public:
        Weapon(string wnam, int f);
        int getForce();
    private:
        string wname;
        int force;
    };
    Weapon::Weapon(string wnam, int f):wname(wnam),force(f) {}
    int Weapon::getForce()
    {
        return force;
    }
    class Role
    {
    public:
        Role(string nam, int b, string wnam, int f);
        ~Role();
        void eat(int d);
        void attack(Role &r);
        bool isAlived();
        void show();
    private:
        string name;
        int blood;
        Weapon weapon;
        bool life;
    };
    Role::Role(string nam, int b, string wnam, int f):name(nam),blood(b),weapon(wnam,f)
    {
        if(blood>0)
            life=true;
        else
            life=false;
    }
    Role::~Role()
    {
        cout<<name<<"退出江湖..."<<endl;
    }
    void Role::eat(int d) 
    {
        if(isAlived())
            blood+=d;
    }
    void Role::attack(Role &r) 
    {
        if(isAlived())
        {
            blood+=weapon.getForce();
            r.blood-=weapon.getForce();
            if(r.blood<=0)
                r.life=false;
        }
    }
    35.bool Role::isAlived() 
    {
        return life;
    }
    36.void Role::show() 
    {
        cout<<name<<" has "<<blood<<" blood, it is ";
        if(isAlived())
            cout<<"alived.";
        else
            cout<<"dead.";
        cout<<endl;
    }
    int main( )
    {
        Role mary("Mary", 500, "TuLong",200);
        Role jack("Jack", 10, "YiTian", 180);
        cout<<"---begin---"<<endl;
        mary.show();
        jack.show();
        cout<<"---1st round---"<<endl;
        jack.attack(mary);
        mary.show();
        jack.show();
        cout<<"---2nd round---"<<endl;
        mary.attack(jack);
        mary.show();
        jack.show();
        cout<<"---end---"<<endl;
        return 0;
    }
    

    运行结果:


    知识点总结:

    函数的使用

    学习心得:

    对游戏没有了解


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值