网站制作全包价格,广西做网站公司排名,青岛网站建设方案,智能建站加盟电话很多其它见#xff1a;C游戏系列文件夹 知识点#xff1a;类的组合#xff0c;A类的数据成员。是B类的对象#xff0c;或B类的对象。做A类的数据成员 【项目-带武器的游戏角色】 设计一个武器类#xff0c;其数据成员至少要有武器名、威力#xff0c;还能够… 很多其它见C游戏系列文件夹 知识点类的组合A类的数据成员。是B类的对象或B类的对象。做A类的数据成员 【项目-带武器的游戏角色】 设计一个武器类其数据成员至少要有武器名、威力还能够加上你想描写叙述武器的其它数据。想一想要对武器实施什么处理设计其成员函数。 在上周的游戏角色类Role基础上扩充为每一个角色创建一个武器并在攻击(attack)行为发生时武器在当中起作用。制定游戏规则使之接近于真实的游戏场景并利用成员函数实现游戏规则最后在main函数中通过调用对应的成员函数。模拟游戏过程。 參考解答 /*
仅设计了一个很easy的使用武器的规则
当攻击对方时自己涨血数等于自己武器的威力。同一时候对方失去等量血
对方失血变为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(blood0)lifetrue;elselifefalse;
}
Role::~Role()
{coutname退出江湖...endl;
}
void Role::eat(int d) //吃东西涨d血
{if(isAlived())bloodd;
}
void Role::attack(Role r) //攻击别人涨1血
{if(isAlived()){bloodweapon.getForce();r.blood-weapon.getForce();if(r.blood0)r.lifefalse;}
}bool Role::isAlived() //是否活着
{return life;
}void Role::show() //显示
{coutname has blood blood, it is ;if(isAlived())coutalived.;elsecoutdead.;coutendl;
}
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;
} 转载于:https://www.cnblogs.com/liguangsunls/p/7253720.html