您的位置:首页 > 其它

第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;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: