更多见:C++游戏系列目录

知识点:类的组合,A类的数据成员,是B类的对象,或B类的对象,做A类的数据成员
  
【项目-带武器的游戏角色】
  设计一个武器类,其数据成员至少要有武器名、威力,还可以加上你想描述武器的其他数据。想一想要对武器实施什么处理,设计其成员函数。
  在上周的游戏角色类Role基础上扩充,为每个角色创建一个武器,并在攻击(attack)行为发生时,武器在其中起作用。制定游戏规则,使之接近于真实的游戏场景,并利用成员函数实现游戏规则,最后在main函数中通过调用相应的成员函数,模拟游戏过程。

参考解答:

/*
仅设计了一个非常简单的使用武器的规则
当攻击对方时,自己涨血数等于自己武器的威力,同时对方失去等量血
对方失血变为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); //吃东西,涨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) //吃东西,涨d血
{if(isAlived())blood+=d;
}
void Role::attack(Role &r) //攻击别人,涨1血
{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;
}

C++游戏系列2:角色装备武器相关推荐

  1. C++游戏系列:目录

    C++游戏系列1:角色类 C++游戏系列2:给角色装备武器 C++游戏系列3:用多文件组织角色类 C++游戏系列4:杀伤距离有限制 C++游戏系列5:不止有一件武器 C++游戏系列6:自己动起来 C+ ...

  2. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十六)飞行模式 – 自由VS天空

    曾几何时开始迷恋无垠的天际,幻想着插上翅膀去飞翔.<天翼之链>.<奇迹>.<梦幻诛仙>向无数玩家展示了飞行的世界.翅膀,常常是一种身份的象征,但如能再赋予它自由的含 ...

  3. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十八) 完美精灵之八面玲珑(WPF Only)②...

    紧接着上一节,首先得解释一下为什么需要将这272张图片合成为一张大图.因为如果游戏中还有装备.坐骑等其他设置,那么我们就需要对图片源进行时时的合成:同时对272张甚至更多的图片进行合成效率高还是对2张 ...

  4. MMOARPG-每周维护报告(九)-装备武器和皮肤

    哈喽,大家好,我叫人宅,本次功能更新的功能比较少,虽然比较少,但服务器的判定代码确实是很多而且很费劲. 装备和武器切换 1.统一了所有Node节点代码,并且深度封装和高级封装,泛化了Node节点. 2 ...

  5. ▷Scratch课堂丨【经典游戏系列】打地鼠1.3 - 地鼠太郎之毁灭之锤

    授权转载 | Geekid 原文作者 | Mr.炎 原文标题 | 游戏丨打地鼠1.3-地鼠太郎之毁灭之锤 标签:难度中级:适合年龄段:8+: Scratch介绍 Scratch融合卡通.动画.音效等多 ...

  6. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):目录

    本系列教程的示例代码下载(感谢 银光中国 提供资源分流): 第一部分源码:WPFGameTutorial_PartI(1-20节) 第二部分源码:WPFGameTutorial_PartII(21-2 ...

  7. 魔域私服服务器连接中断,魔域私服服务器中装备武器道具爆率相关算法及设置详细攻略分享...

    想必很多魔域私服玩家都比较好奇在游戏中各个高级怪物或者boss怪物的装备武器爆率是多少,其实这个问题不单单是玩家想要知道很多魔域私服gm也是非常想要知道的.在游戏里装备武器爆率绝对不是直接用一个百分比 ...

  8. 游戏中的角色停止,时间停止

    游戏中的角色停止,时间停止 最近遇到一款很喜欢的游戏-<TimeLocker-Shooter>,翻译是"时间凝固-射击". 游戏介绍很简单:当你停止,时间停止 .操纵时 ...

  9. 史诗轨迹的传说!盘点Falcom十大经典游戏系列

    Falcom在中国玩家心目中的知名度丝毫不次于日本欧美等顶尖游戏厂商,这个小公司以JRPG为主打,Falcom用其精致的人设,优美的音乐,温馨感人的剧情为JRPG界带来了一股清风 作为一家总员工人数不 ...

最新文章

  1. Autolayout学习(1)-了解Autoreszing
  2. Spring中JdbcTemplate中使用RowMapper
  3. 自己使用的Android框架
  4. pyqy5——控件2
  5. BP神经网络原理简介
  6. mysql在查询结果列表前添加一列递增的序号列(最简)
  7. ts文件怎么合并转换成mp4?
  8. oracle12能卸干净吗,oracle卸载干净【设置方案】
  9. android 坏点测试软件,烧屏坏点检测软件下载-烧屏坏点检测官方安卓版v1.0-魅卓网...
  10. 如何用Java分配一段连续的1G的内存空间?需要注意些什么?
  11. python灰色关联度分析_基于灰色关联度重庆万州区边坡稳定影响因素分析
  12. 【金融财经】金融市场一周简报(2018-03-30)
  13. 【语音智能管家】之语音唤醒(附演示视频)
  14. abd获取手机应用的安装包
  15. 【linux性能优化】系统Swap变高原因分析
  16. git提交空目录的方法
  17. javascript的原始数据类型
  18. 裁判文书数据-大数据分析用例
  19. 一个轻巧强大的模拟服务器接口桌面软件
  20. 1024程序员节|代码改变世界,科技创造未来~ 机械工业出版社送福利,好书相赠~

热门文章

  1. HTML5实现简易电子书
  2. 云原生的前世今生(一)
  3. 1.Hive系列之简介
  4. Rulo扫地机器人app_求一款性价比高的扫地机器人?
  5. C# 数组截取某一段的值
  6. 深度linux跟windows,深度系统与Windows系统比较
  7. linux 创建中文文件夹,linux下创建文件和文件夹-Go语言中文社区
  8. 奥巴马写给女儿的信:停止在做的17件事
  9. 从零开始的qplugin之——先弄弄图形
  10. css 如何ie7 兼容性问题,CSS对浏览器的兼容性性处理(IE7,6与Fireofx)