<pre class="cpp" name="code">/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作    者:王蕊*完成日期:2016年4月5日*版 本 号:v1.0**问题描述:在上周的游戏角色类基础上扩充,为每个角色创建一个武器,并在攻击行为发生时,武器在其中起作用,设计一个武器类,其数据成员至少要有武器名、威力*输入描述:*程序输出:
*/
#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;elselife=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;}
}
bool Role::isAlived()
{return life;
}
void Role::show()
{cout<<name<<" has "<<blood<<" blood, it is ";if(isAlived())cout<<"alived.";elsecout<<"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;
}

运行结果:

第六周项目二-带武器的游戏角色相关推荐

  1. 第六周项目2建立链栈算法库

    /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第六周项目2.cpp 作 者:彭子竹 完成日期:2015年10月23日 版 ...

  2. 第九周项目二时间类的重载<<与>>,一目。

    /* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: * 完成日期:2014 年4 月22 日 * 版 本 号:v1.0 * ...

  3. 第五周 项目二 建立链栈算法库

    /* Copyright (c)2017,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第5周项目2--建立链栈算法库.cpp 作 者:孙仁圆 完成日期:2017年 ...

  4. 迦瓦栈队 团队第六周项目总结

    贪吃蛇小游戏的Java实现_项目总结 小组成员: ·20145201 李子璇 ·20145204 张亚军 ·20145211 黄志远 ·20145212 罗天晨 ·20145224 陈颢文 团队项目总 ...

  5. 第十一周项目二----用二叉树求解代数表达式

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+ ...

  6. 第十二周项目二-Time类中的运算符重载

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月24日*版 本 号:v1. ...

  7. 第十二周项目二----操作用邻接表存储的图

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度: (2)求出图G中出度最大的 ...

  8. 第十周 项目二 阴险的小刚

    #include <cstdio> using namespace std; int main() {     char ch;     int i=1;     for(i=1;i< ...

  9. 15周项目二:杨辉三角。

    /* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: array.cpp * 作 者:赵振凯 ...

最新文章

  1. 【Live555】live555源码详解(一):BasicUsageEnvironment、UsageEnvironment
  2. ***突然断开可能是ADSL猫惹的祸
  3. vSphere虚拟化之ESXi安装及部署
  4. obj: object是什么意思_面试官问你JavaScript基本类型时他想知道什么?
  5. win10 iot core java_Windows 10 IoT Core 正式版初体验
  6. CUBLAS变量解释(1)
  7. C语言bmp文件隐藏,怪事!!关于读bmp文件!
  8. ucos-II 任务间同步源码分析(一)
  9. 如何防止盗号 使用windows自带的 屏幕键盘 OSK
  10. 关于go语言的测试相关内容笔记
  11. 快速了解Linux ps命令
  12. Durable NAND flash memory management
  13. Nginx实现静态资源服务器
  14. Mysql 10位 13位时间戳对比现在时间 时间对比查询
  15. win10连接文件服务器记住密码如何删除,win10系统访问共享文件夹需要密码的取消方法...
  16. 矩阵转置算法 oracle,请编写程序fun,函数的功能是:实现B=A+Aˊ,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函...
  17. CentOS7设置笔记本合盖不休眠
  18. 这些秋季儿童养生小常识,你要知道!
  19. android 图片内存缓存文件在哪个文件夹,别再用手机管家清理内存了!1分钟删掉这些文件夹,内存多出几个G...
  20. ArrList 源码拜读

热门文章

  1. python阿拉伯数字转中文_python中将阿拉伯数字转换成中文的实现代码
  2. C++知识点11——this指针,const成员函数,访问权限控制
  3. 卢京潮自动控制原理ppt_视觉定位系统在贴片机中的使用与原理作用
  4. 山西晋城学籍“失踪”解决方案:可参加高考或转职高
  5. with(nolock)的用法
  6. (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】
  7. 内存数据库服务运营之路
  8. 一站式学习Wireshark(三):应用Wireshark IO图形工具分析数据流 | 快课网
  9. wordpress给后台文章列表增加自定义排序栏
  10. [NOIp提高组2017]宝藏