一. 题目分析
几乎所有的RPG游戏(一种源自《龙与地下城》的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。本次上机要求编写一个简化的创建游戏角色的程序。
分析:建立一个角色类CH,类里包括角色的姓名、性别、属性,以及对属性的建立和保存。在创建属性时,不同的角色职业天赋也不一样,根据一定的天赋比例用随机函数rand()在不同的数值区间来分配属性。最后用文件流ofstream与文件建立关联写入数据。
二. 类图设计
三. 程序实现(C++)
#include <iostream>
#include <fstream>
#include <string>
#include<cstdlib>
#include<ctime>
#define random(a,b) (rand() % (b-a))+a+1
using namespace std;
class CH
{
public:
string name;//姓名
string sex;//性别
string race;//种类
string vocation;//职业
int i,j,k,flag;
int a,b,c,d,e;
int strength;//力量
int agility;//敏捷
int Power;//体力
int intelligence;//智力
int wisdom;//智慧
int HP;//生命值
int MP;//魔法值
public:
void creat();//进行角色基本属性的进行创建
void value();//角色属性的分配
void display();//显示所创建角色的有关属性
void save ();//保存角色数据
};
void CH::creat()//创建角色基本属性
{
cout<<"请输入您游戏角色的姓名:";
cin>>name;
cout<<"请选择您游戏角色的性别(0男性,1女性):";
cin>>k;
if(k==0)
sex="男性";
else
sex="女性";
cout<<"请选择入您游戏角色的种族(0人类,1精灵,2兽人,3矮人,4元素):";
cin>>i;
if (i==0)
{race="人类";
cout<<"请选择您的职业(0狂战士,1圣骑士,2刺客,3猎手,4祭司,5巫师):";
cin>>j;
if (j==0)
vocation="狂战士";
else if (j==1)
vocation="圣骑士";
else if (j==2)
vocation="刺客";
else if (j==3)
vocation="猎手";
else if (j==4)
vocation="祭司";
else if (j==5)
vocation="巫师";
}
else if(i==1)
{
race="精灵";
cout<<"请选择您的职业(0刺客,1猎手,2祭司,3巫师):";
cin>>j;
if (j==0)
vocation="刺客";
else if (j==1)
vocation="猎手";
else if (j==2)
vocation="祭司";
else if (j==3)
vocation="巫师";
}
else if(i==2)
{race="兽人";
cout<<"请选择您的职业(0狂战士,1猎手,2祭司,3巫师):";
cin>>j;
if (j==0)
vocation="狂战士";
else if (j==1)
vocation="猎手";
else if (j==2)
vocation="祭司";
else if (j==3)
vocation="巫师";
}
else if(i==3)
{race="矮人";
cout<<"请选择您的职业(0狂战士,1圣骑士,2祭司,3巫师):"<<endl;
cin>>j;
if (j==0)
vocation="狂战士";
else if (j==1)
vocation="圣骑士";
else if (j==2)
vocation="