RPG游戏角色属性简单的设置C++

一.题目要求
1.游戏角色应有的属性
本题目要求的游戏角色应有以下属性:名字、性别、种族、职业、力量、敏捷、体力、智力、智慧、生命值和魔法值。
名字:不超过50个字符。
性别:可以选择男性和女性。
种族:一共可选五个种族,人类、精灵、兽人、矮人和元素。
职业:可选六种职业,狂战士、圣骑士、刺客、猎手、祭司和巫师。
其余属性均为整数。
本题目要求首先用户输入角色姓名,然后由用户选择角色性别,然后由用户选择种族,然后选择职业,然后自动分配力量、敏捷、体力、智力和智慧属性,并计算生命值和魔法值。
生命值=体力*20。
魔法值=(智力+智慧)*10。
2.职业限制
很多职业会限制某些种族选择,例如兽人不能就职圣骑士等等,种族和职业的限制表如下:RPG游戏角色属性简单的设置C++_第1张图片

所以在要求用户选择职业时,输出信息里面只能有用户所选择种族可以就职的职业。
3.初始属性
本题目要求力量、敏捷、体力、智力和智慧要求是随机值(利用随机数函数来取得随机数),但是五项属性的总和应该是100,并且应该和职业相关。例如狂战士的体力和力量就要比较高,而巫师需要较高的智力,而祭司则需要较高的智慧。各职业初始属性的大致比例应遵从下表:
RPG游戏角色属性简单的设置C++_第2张图片
例如,前面示意图中的祭司的初始属性,大致满足该比例,但是应该是随机的。
然后利用属性值计算生命值和魔法值。
4.显示信息
最后向用户显示该角色的所有信息,然后询问用户是否满意,如用户不满意则重新创建,若用户满意则程序结束,并将用户创建角色的相关信息写入文件保存。

二.题目分析
运用多个switch语句,对输入的游戏角色的信息进行判断,并将信息赋给相对应字符串。
RPG游戏角色属性简单的设置C++_第3张图片

在不同种族的职业选择方面,首先还是用switch语句,对种族的进行判断,对不同的case的操作是:不同的种族显示相对应的职业。
RPG游戏角色属性简单的设置C++_第4张图片
在力量,敏捷,体力,智力,智慧的赋值,先生成合适的随机数,然后用switch语句,对职业进行判断,对不同的case的操作是:不同的职业赋值不同范围的随机数。
RPG游戏角色属性简单的设置C++_第5张图片
三.流程图
RPG游戏角色属性简单的设置C++_第6张图片
代码:

#include
#include
#include
#include
using namespace std;
class Initial
{public:
void display();         //显示角色信息
void file();            //保存信息到文件中
void getname();         //获取角色的名字和性别
void getrace();         //获取角色的种族,职业,并对角色各项基础属性赋值
char name[10];
char *race2,*profession2,*sex2;
int race,profession,sex,power,agility,physical,zhili,zhihui,life,magic;

};
void Initial::getname(){
	

    cout<<"请输入您游戏角色的姓名"<>name;
    cout<<"请输入您游戏角色的性别(0:男性 1:女性)"<>sex;
	switch(sex){
	case 0:sex2="男性";break;
	case 1:sex2="女性";break;
}
};

void Initial::getrace(){


	cout<<"请输入您游戏角色的种族(0:人类 1:精灵 2:兽人 3:矮人 4:元素 )"<>race;
	switch(race){
	case 0:race2="人类";  cout << "请输入您的职业1.狂战士 2.圣骑士 3.刺客 4.猎手 5.祭司 6.巫师" << endl;cin>>profession; break;
	case 1:race2="精灵";  cout << "3.刺客 4.猎手 5.祭司 6.巫师" << endl;cin>>profession;break;
	case 2:race2="兽人";  cout << "1.狂战士 4.猎手 5.祭司 " << endl;cin>>profession;break;
	case 3:race2="矮人";  cout << "1.狂战士 2.圣骑士 5.祭司 " << endl;cin>>profession;break;
	case 4:race2="元素";  cout << "5.祭司 6.巫师" << endl;cin>>profession;break;
}

switch(profession){
	case 1:profession2="狂战士";break;
	case 2:profession2="圣骑士";break;
	case 3:profession2="刺客";break;
	case 4:profession2="猎手";break;
	case 5:profession2="祭司";break;
	case 6:profession2="巫师";break;
	}
	srand((unsigned)time(NULL));
	int a,b,c,d,e;
      a=rand()%11+35;    //35--45
      b=rand()%11+25;    //25--35
      c=rand()%11+15;    //15--25
      d=rand()%11+5;     //5 --15
      e=rand()%11+10;    //10--20

switch(profession){
	case 1:power=a;agility=c;physical=b;zhili=d;zhihui=d;break; //狂战士
	case 2:power=b;agility=e;physical=b;zhili=c;zhihui=d;break;  //圣骑士
	case 3:power=b;agility=a;physical=c;zhili=e;zhihui=d;break;  //刺客
	case 4:power=c;agility=a;physical=b;zhili=e;zhihui=b;break;  //猎手
	case 5:power=e;agility=c;physical=e;zhili=a;zhihui=e;break;  //祭司
	case 6:power=d;agility=c;physical=d;zhili=c;zhihui=a;break;  //巫师


}
      life=physical*20;
      magic=(zhili+zhihui)*10;
};


void Initial::display(){
cout<<"============================="<>n;
	switch(n){
	case 0:t0.file();break;     //调用file()函数,保存信息
	case 1:goto loop;           //返回标记处,对角色重新定义
	}
	
}

代码测试:
不满意角色设定,进行重新的设定并保存新设定的属性信息到文件中。
RPG游戏角色属性简单的设置C++_第7张图片
RPG游戏角色属性简单的设置C++_第8张图片
选择兽人,在职业只显示狂战士,猎手,祭祀。
RPG游戏角色属性简单的设置C++_第9张图片
RPG游戏角色属性简单的设置C++_第10张图片

问题 :角色的力量,敏捷,体力,智力,智慧五项属性之和不为题目要求的100.

你可能感兴趣的:(RPG游戏角色属性简单的设置C++)