第6周项目2—带武器的游戏角色
2016-04-05 19:27
288 查看
/* *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights reserved. *文件名称:test.cpp *作者:杨驰 *完成日期:2016年4月5 *问题描述:设计一个武器类,要有武器名、威力。在上周的游戏角色类Role基础上扩充,为每个角色创建一个武器,并在攻击(attack)行为发生时,武器在其中起作用。 */ #include<iostream> using namespace std; class weapon { public: weapon(string wnam,int forc); int getforce(); private: string wname; int force; }; weapon::weapon(string wnam,int forc):wname(wnam),force(forc){} int weapon::getforce() { return force; } class Role { public: Role(string nam,int blo,string wnam,int forc); ~Role(); void eat(int n); bool isAlived(); void attack(Role &r); void show(); private: string name; int blood; weapon weap; bool life; }; Role::Role(string nam,int blo,string wnam,int forc):name(nam),blood(blo),weap(wnam,forc) { if(blood>0) life=true; else life=false; } Role::~Role() { cout<<" 退出江湖。。。 "<<endl; } void Role::eat(int n) { if(isAlived()) blood+=n; } bool Role::isAlived() { return life; } void Role::attack(Role &r) //攻击别人,涨1血 { if(isAlived()) { blood+=weap.getforce(); r.blood-=weap.getforce(); if(r.blood<=0) r.life=false; } } 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<<" the first combat "<<endl; jack.attack(mary); mary.show(); jack.show(); cout<<" the second combat "<<endl; mary.attack(jack); mary.show(); jack.show(); cout<<" end "<<endl; return 0; }
运行结果:
相关文章推荐
- Tab游标,实现fragment滑动,,游标改变
- POJ-2777 Count Color(线段树)
- CCF—出现次数最多的数
- Android 沉浸式状态栏
- 052(十六)
- 算法训练 矩阵加法
- 关于OC中的委托
- c++:私有继承,公有继承,保护继承
- 猜数字游戏
- JAVA环境变量的配置及常用工具说明
- openjudge SDAU 链表 构造单向链表
- linux配置ftp服务器
- 整合iBatis和Spring之SqlMapClientDaoSupport
- 环境变量的配置
- 利用gulp构建你的项目
- Main()方法
- Android记录一个setTextColor常见的一个bug
- 扬声器听筒的切换
- 算法训练 邮票
- 增长黑客(Growth Hacker)介绍