武器杀伤有限制
来源:互联网 发布:php倒计时 编辑:程序博客网 时间:2024/06/10 03:57
在之前的基础上增加距离等新功能
//孙悟空大战红孩儿#include<iostream> #include<string> using namespace std; class weapon //武器属性 { public: friend class Role; weapon(string na,int po,int di) { name=na; power=po; distant=di; } int getpower(); string getname(); int getdist();private: string name; int power; int distant;}; string weapon::getname() { return name; } int weapon::getpower() { return power; } int weapon::getdist(){return distant;}class Role //角色{ public: Role(string nam,int n,string we,int p,int di,int dis); ~Role(); void show(); void attack(Role &other); void eat(int n); bool isAlive(); string getname(); int getdistance();void runaway(Role &r);//逃跑int deledis();//减小距离int addpower();//增加武器的威力int getblood();//血量private: string name; int blood; weapon weapon; //定义一个武器,也可定义多个武器,例如:weapon weapon[20],表示二十个武器int distance; bool life; }; int Role::getblood(){return blood;}int Role::addpower (){cout<<name<<"想起了家中的母亲,不能就此死去,他张开大口,三昧真火的颜色变了,攻击力加200"<<endl;return weapon.power+=200;//将Role类定义为weapon的朋友类,访问weapon的私有成员。}int Role::deledis(){cout<<name<<"向前推进200米"<<endl;return distance-=200;}void Role::runaway(Role &r){if(blood<20)cout<<name<<"打不过"<<r.name<<",他逃跑了。"<<endl;}int Role::getdistance(){return distance;} string Role::getname() { return name; } void Role::attack(Role &other) { if(isAlive()) { cout<<name<<"使用"<<weapon.getname()<<"攻击"<<other.getname()<<','; if(weapon.getdist()>getdistance()){ cout<<other.getname()<<"损失"<<weapon.getpower()<<"滴血,"; cout<<name<<"得到"<<weapon.getpower()/2<<"滴血"<<endl; blood+=weapon.getpower()/2; other.blood-=weapon.getpower(); if(other.blood<=0) life=false;}else{cout<<"但是敌人距离超出武器攻击范围,攻击无效"<<endl;} } } void Role::eat(int n) { if(isAlive()) cout<<name<<"逃跑过程中使用了回血丹,血量增加"<<n<<"点"<<endl; blood+=n; } bool Role::isAlive() { return life; } Role::Role(string nam,int n,string we,int p,int di,int dis):name(nam),blood(n),weapon(we,p,di),distance(dis)//改了参数之后表示weapon的参数为三; { if(blood>0) life= true; else life= false; } Role::~Role() //析构函数,在程序结束的时候调用{ if(blood<=0) cout<<name<<"退出江湖"<<endl; } void Role::show() { if(blood>0) cout<<name<<"还剩"<<blood<<"滴血"<<endl; } int main( ) { cout<<"初始状态:"<<endl; Role mary("孙悟空", 100,"金箍棒",90,100,10); //最后两个是武器的攻击距离,和距离武器的距离 Role jack("红孩儿", 100,"三昧真火",10,150,300); mary.show(); jack.show(); cout<<"第一回合:"<<endl; mary.attack(jack); jack.attack(mary); mary.runaway(jack);if(jack.getblood()>0)jack.runaway(mary);cout<<"这一回合:"<<endl; jack.eat(50); mary.show(); jack.show(); cout<<"第二回合:"<<endl;jack.deledis();jack.addpower(); jack.attack(mary); if(mary.getblood()>0)mary.attack(jack); cout<<"这一回合:"<<endl; mary.show(); jack.show(); cout<<"母爱好伟大!"<<endl; return 0; }
运行结果:
0 0
- 武器杀伤有限制
- 杀伤距离有限制
- C++游戏系列4:杀伤距离有限制
- 雅虎的人工智能有独门武器!
- 第八周-不止有一件武器
- c++:有武器的角色类
- 武器
- 有限制的dfs
- 第八周-杀伤距离有限
- 企业应对危机 业务创新有六得力“武器”
- 单身女性的居家防护武器,你有几个?
- C++游戏系列5:不止有一件武器
- 第八周项目四-角色有多样武器
- 看懂数据,有这4个武器就够了
- URL长度有限制吗?
- 局部堆栈大小有限制
- 有限制最短路hdu4179
- 它们有相同的限制
- Android对本地xml的文件读取
- 如何求树的重心
- 贝塞尔曲线绘制路径
- windows下使用Armadillo+openBLAS
- 【Spark Java API】Transformation(2)—sample、randomSplit
- 武器杀伤有限制
- Web实时通信技术
- 思维题(好题)
- js 指定iframe 跳转指定页面
- Android简单自定义圆形和水平ProgressBar
- POJ 3321 Apple Tree
- K-means聚类算法
- Java中的正则表达式
- 2016-08-019:周末计划