C++游戏系列1-角色类
2016-03-27 20:23
417 查看
更多见:C++游戏系列目录
知识点:
1、类的定义、对象
2、构造函数、析构函数
[参考解答]
(2)设计构造函数,使角色对象在创建时被初始化;设计析构函数,当角色对象被撤消时,提示一句“XXX(名称)退出江湖…”。可以用下面的代码进行测试,运行结果参考右图:
[参考解答]
知识点:
1、类的定义、对象
2、构造函数、析构函数
【项目-游戏中的角色类】
(1)基于下面设计的游戏中角色类,补充完整需要的成员函数,使角色能一定的规则行动或改变状态。下面代码中包含的是最基本的要求,可以根据你的设计进行扩充。class Role { public: …… private: string name; int blood; bool life; }; int main( ) { Role mary; mary.setRole("Mary", 4); mary.show(); mary.attack(); mary.eat(2); mary.beAttack(); mary.beAttack(); mary.show(); return 0; }
[参考解答]
#include <iostream> using namespace std; class Role { public: void eat(int d); //吃东西,涨d血 void attack(); //攻击别人,涨1血 void beAttack(); //被攻击,失1血,血为0死掉 bool isAlived(); //是否活着 void setRole(string nam, int b); //设置 void show(); //显示 private: string name; int blood; bool life; }; void Role::eat(int d) //吃东西,涨d血 { if(isAlived()) blood+=d; } void Role::attack() //攻击别人,涨1血 { if(isAlived()) blood++; } void Role::beAttack() //被攻击,失1血,血为0死掉 { if(isAlived()) blood--; if(blood==0) life=false; } bool Role::isAlived() //是否活着 { return life; } void Role::setRole(string nam, int b) //设置 { name=nam; blood=b; if(blood>0) life=true; else 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.setRole("Mary", 4); mary.show(); mary.attack(); mary.eat(2); mary.beAttack(); mary.beAttack(); mary.show(); return 0; }
(2)设计构造函数,使角色对象在创建时被初始化;设计析构函数,当角色对象被撤消时,提示一句“XXX(名称)退出江湖…”。可以用下面的代码进行测试,运行结果参考右图:
int main( ) { Role mary("Mary", 4); Role jack("Jack", 0); mary.show(); jack.show(); return 0; }
[参考解答]
#include <iostream>
using namespace std;
class Role
{
public:
Role(string nam, int b); //构造函数
~Role(); //析构函数
void eat(int d); //吃东西,涨d血
void attack(); //攻击别人,涨1血
void beAttack(); //被攻击,失1血,血为0死掉
bool isAlived(); //是否活着
void show(); //显示
private:
string name;
int blood;
bool life;
};
Role::Role(string nam, int b)
{
name=nam;
blood=b;
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() //攻击别人,涨1血
{
if(isAlived())
blood++;
}
void Role::beAttack() //被攻击,失1血,血为0死掉
{
if(isAlived())
blood--;
if(blood==0)
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("Mary", 4); Role jack("Jack", 0); mary.show(); jack.show(); return 0; }
相关文章推荐
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- 一步一步跟我学易语言之第二个易程序菜单设计
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- C#中设计、使用Fluent API
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- C++实现基于控制台界面的吃豆子游戏
- 基于逻辑运算的简单权限系统(原理,设计,实现) VBS 版
- 纯javascript实现的小游戏《Flappy Pig》实例
- JavaScript设计模式初探
- 基于javascript实现句子翻牌网页版小游戏
- JavaScript实现俄罗斯方块游戏过程分析及源码分享