第6周项目2:带武器的游戏角色
2016-04-07 08:45
197 查看
<pre name="code" class="cpp">/* * Copyright(c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:第6周项目2:带武器的游戏角色 * 作者:马康泰 * 完成日期:2016.4.5 * 版本号:v1.0 * * 问题描述:设计一个武器类,其数据成员至少要有武器名、威力,还可以加上你想描述武器的其他数据。想一想要对武器实施什么处理,设计其成员函数。在上周的游戏角色类Role基础上扩充,为每个角色创建一个武器,并在攻击(attack)行为发生时,武器在其中起作用。制定游戏规则,使之接近于真实的游戏场景,并利用成员函数实现游戏规则,最后在main函数中通过调用相应的成员函数,模拟游戏过程。 * 输入描述: * 程序输出: */ #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() { cout<<name<<"退出江湖..."<<endl; }; //析构函数 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; else life=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."; else cout<<"dead."; cout<<endl; } int main( ) { Role mary("gailun", 300, "heiqie",100); Role jack("jiansheng", 200, "wujin", 150); cout<<"---开始---"<<endl; mary.show(); jack.show(); cout<<"---第一回合---"<<endl; jack.attack(mary); mary.show(); jack.show(); cout<<"---第二回合---"<<endl; mary.attack(jack); mary.show(); jack.show(); cout<<"---结束---"<<endl; return 0; }
相关文章推荐
- UI-UIButton、UILable、UITextField总结
- 微软笔试题3 Demo Day
- C++作业3
- 通过ulimit改善linux系统性能(摘自IBM)
- Keeper(保密信息)
- 052(二十六)
- 《AppletButtonEvent.java》
- 基于javascript bootstrap实现生日日期联动选择
- Keeper(保密信息)
- IOS混合编程 - Http for IOS (二)
- 深度学习(五)caffe环境搭建
- 三角形class
- C++课堂实验3
- 131.复制书稿
- 《CheckboxDemo.java》
- 关于iOS中AES加密和base64编码的理解
- php 两个数组函数自我理解
- Android 5.0鲜为人知的新特性
- Java静态代码分析工具——FindBugs插件的安装与使用
- IOS混合编程 - UIWebView 与 WKWebView . 基本使用 (一)