大作业1 类的设计与实现
一、实验目的
- 掌握类的设计与实现
- 了解如何根据描述发现类及其成员,具备初步的面向对象分析与设计能力
二、实验内容
- 请选择一个你所熟悉的游戏,分析其中的某个场景所涉及的类,及其各个类的属性和行为,完成类的定义。
- 请选择该游戏的一个简单的游戏过程,分析其中涉及的对象及其对象之间的交互,完成该过程的游戏过程框架。
三、实验结果
请用文字描述分析过程,以伪代码的形式给出类定义和游戏框架,以“学号 姓名”命名后,上传至BlackBoard—网上作业栏目--大作业1。
四、实验过程
本人是初学者,大佬不屑勿喷。
看到这个题目就想起王者荣耀这个游戏,想设计英雄打野怪的一个小过程,不过限于本人水平,只能将其抽象抽象再抽象,简化简化再简化,最后是:英雄打一个野怪,每打一次双方都会掉血,但英雄经验会增加,经验增加到一定程度英雄等级会提升,等级提升会强化自身生命和伤害,直到打架的双方有一个挂掉(野怪必然挂掉)。
选择描述王者荣耀里面打野的简单化过程,其中涉及到两个类,一个是英雄,一个是野怪。
对于英雄这个类,定义其属性有生命值、等级、经验和伤害,其行为是打怪过程中生命值会因为受到野怪伤害而减少,同时自身经验也会增加,经验增加到一定程度英雄等级会提升,等级提升会强化自身生命值和伤害。
对于野怪这个类,定义其属性有生命值和伤害,其行为是过程中生命值会因为收到英雄伤害而减少。
五、代码
代码语言:javascript复制//类界面
class hero//定义英雄类
{
private:
int hp;//生命值
int rank;//等级
int exp;//经验
int damage;//伤害
public:
void initial();//初始化
void Uprank();//升级
int Upexp();//经验增加
int Hp(int damage);//掉血
int Damage();//返回伤害值
};
class monster//定义野怪
{
private:
int hp;//生命值
int damage;//伤害
public:
void initial();//初始化
int Hp(int damgage);//掉血
int Damage();//返回伤害值
};
//类定义
void hero::initial()//英雄初始化
{
hp=1000;
rank=1;
exp=0;
damage=100;
}
int hero::Upexp()//增加经验
{
return exp =10;
}
void hero::Uprank()//升级
{
rank ;//等级提升
hp=hp 200;//生命值增加
damage=damage 50;//伤害强化
}
int hero::Hp(int damage)//掉血
{
return hp=hp-damage;
}
int hero::Damage()//返回伤害值
{
return damage;
}
void monster::initial()//野怪初始化
{
hp=500;
damage=30;
}
int monster::Hp(int damage)//掉血
{
return hp=hp-damage;
}
int monster::Damage()//返回伤害值
{
return damage;
}
//
int main()
{
hero Jungle;//定义Jungle这个英雄
monster Boss;//定义boss这个野怪
Jungle.initial();
Boss.initial();
while(Jungle.Hp(Boss.Damage())||Boss.Hp(Jungle.Damage()))//开打直到其中一方挂掉
{
if(Jungle.Upexp()0==0)//打一次经验提升,经验每提升100就升一级
Jungle.Uprank();
}
}