c语言rpg游戏,rpg人物制作软件

  c语言rpg游戏,rpg人物制作软件

  1.功能描述

  几乎所有的RPG游戏(一种起源于《龙与地下城》的游戏类型)在进入游戏时都会让用户创建自己喜欢的角色,需要一个简化的创建游戏角色的程序。

  2.游戏角色的属性

  本标题要求的游戏角色应具备以下属性:姓名、性别、种族、职业、力量、敏捷、体力、智力、智慧、健康、魔力。

  名称:不超过50个字符。

  性别:可以选男的女的。

  种族:总共可以选择五个种族,人类、精灵、兽人、矮人和元素。

  职业:可以选择六种职业:狂战士、圣骑士、刺客、猎人、牧师、巫师。

  其他属性都是整数。

  这个题目要求用户先输入角色的名字,然后用户选择角色的性别,再选择种族,再选择职业,然后自动分配力量,敏捷,体力,智力,智慧等属性,计算生命值和魔法值。

  生命值=体力*20。

  魔值=(智力智慧)*10。

  3.职业限制

  很多职业会限制某些种族的选择,比如兽人不能被雇佣为圣骑士等。种族和职业的限制表如下:

  因此,当要求用户选择职业时,输出信息只能包含用户选择的种族可以工作的职业。

  4.初始属性

  本题要求力量、敏捷、体力、智力、智慧为随机值(使用随机数函数获取随机数),但五个属性之和应为100,且与职业相关。比如狂战士的体力和力量都比较高,而魔法师需要更高的智力,牧师需要更高的智力。每个初始专业属性的大致比例应符合下表:

  比如前面示意图中牧师的初始属性大致符合这个比例,但应该是随机的。然后用属性值计算生命值和魔法值。

  5.显示信息

  最后将角色的所有信息展示给用户,然后询问用户是否满意。如果他不满意,他将被重新创造。如果他满意了,程序就结束了,用户创建的角色的信息就被写入一个文件并保存。

  6.源代码

  //RPG.cpp:定义控制台应用程序的入口点。

  //功能:编写一个创建游戏角色的简化程序

  //作者:马璐璐

  //编译器:VS2015

  //时间:2017年4月21日

  //修改时间:2017.05.02

  #include stdafx.h

  #包括iostream

  #包含字符串

  #包括ctime

  #包括fstream

  #包括iomanip

  使用命名空间std

  int occupation _ choice//玩家选择的类的序列号

  //基本类,保存角色的名字和性别

  基于类别的信息模拟

  {

  受保护:

  char name[50];

  弦性;

  int性别_选择;

  公共:

  void getBaseinfoamation();

  友类输出;//Friend类,用于输出角色信息。

  友类文件;//Friend元类,将角色信息保存到文档中。

  };

  //输入角色名称和性别

  void Baseinfoamation:getBaseinfoamation()

  {

  int I=1;

  Cout 请选择您的游戏角色的名称:;

  cin名字;

  当(我)

  {

  Cout 请选择您的游戏角色的性别(0男1女):;

  cin性别选择;

  开关(性别选择)

  {

  案例0:

  性别=男性;

  I=0;

  打破;

  案例1:

  性别=女性;

  I=0;

  打破;

  默认值:

  Cout 输入错误,请重新输入 endl

  打破;

  }

  }

  }

  //基类,记录角色的种族和职业

  阶级竞赛

  {

  受保护:

  char name[50];

  弦性;

  int性别_选择;

  弦乐比赛;

  字符串占用;

  int race _ choice

  公共:

  void getBaseinfoamation();

  友类输出;//Friend类,用于输出角色信息。

  友类文件;//Friend元类,将角色信息保存到文档中。

  void getRace();

  友类输出;

  友类文件;

  };

  //选择种族和职业

  void Race:getRace()

  {

  int I=1;

  当(我)

  {

  Cout 请选择你游戏角色的种族(0人类,1精灵,2兽人,3矮人,4元素):;

  cin种族_选择;

  开关(种族选择)

  {

  案例0:

  种族=‘人类’;

  I=0;

  打破;

  案例1:

  Race= sprite

  I=0;

  打破;

  案例二:

  Race= orc

  I=0;

  打破;

  案例三:

  种族=‘矮人’;

  I=0;

  打破;

  案例4:

  Race= element

  I=0;

  打破;

  默认值:

  cout 输入错误,请重新输入恩德尔

  打破;

  }

  }

  while (1)

  {

  cout 请选择您的职业(0狂战士,1圣骑士,2刺客,3猎手,4祭司,5巫师): endl

  开关(种族选择)

  {

  案例0:

  cout 0狂战士一圣骑士2刺客3猎手四祭司5巫师恩德尔

  打破;

  案例1:

  cout 2刺客3猎手四祭司5巫师恩德尔

  打破;

  案例二:

  cout 0狂战士3猎手四祭司恩德尔

  打破;

  案例三:

  cout 0狂战士一圣骑士四祭司恩德尔

  打破;

  案例4:

  cout 4祭司5巫师恩德尔

  打破;

  }

  宫颈癌前病变职业_选择;

  if(race _ choice==0(occupation _ choice=0 occupation _ choice=5))

  打破;

  else if(race _ choice==1(occupation _ choice 1 occupation _ choice 6))

  打破;

  else if(race _ choice==2(occupation _ choice==0 occupation _ choice==3 occupation _ choice==4))

  打破;

  else if(race _ choice==3(occupation _ choice==0 occupation _ choice==1 occupation _ choice==4))

  打破;

  else if(race _ choice==4(occupation _ choice 3 occupation _ choice 6))

  打破;

  其他

  cout 输入错误,请重新输入恩德尔

  }

  if (occupation_choice==0)

  职业=狂战士;

  if (occupation_choice==1)

  职业=圣骑士;

  if (occupation_choice==2)

  职业=刺客;

  if (occupation_choice==3)

  职业=猎手;

  if (occupation_choice==4)

  职业=祭司;

  if (occupation_choice==5)

  职业=巫师;

  }

  //基类,记录角色的属性

  类别属性

  {

  受保护:

  char name[50];

  弦性;

  (同Internationalorganizations)国际组织性别_选择;

  弦乐比赛;

  字符串占用;

  国际种族选择

  (同Internationalorganizations)国际组织强度;//力量

  (同Internationalorganizations)国际组织敏捷度;//敏捷

  (同Internationalorganizations)国际组织物理;//体力

  (同Internationalorganizations)国际组织智能;//智力

  (同Internationalorganizations)国际组织智慧;//智慧

  int HP//生命值

  int MP//法力值

  公共:

  void getBaseinfoamation();

  友类输出;//友元类,用于输出角色信息

  友类文件;//友元类,将角色信息保存到文档中

  void getRace();

  友类输出;

  友类文件;

  void get属性();

  void getRandom(int a,int b,int c,int d,int e);

  友类输出;

  友类文件;

  };

  //随机生成每项属性的值,abcd为该属性的最小值,e为第五个属性的最大值

  空的属性* get random(int a,int b,int c,int d,int e)

  {

  int sum//前四项属性之和

  srand((无符号)时间(空));

  做

  {

  强度=a rand()% 10;

  敏捷=b rand()% 10;

  physical=c rand()% 10;

  intelligence=d rand()% 10;

  总和=力量敏捷身体智力;

  } while((100-e)sum)(sum 100));

  智慧=100-sum;

  HP=物理* 20;

  MP=(智慧智力)* 10;

  }

  //根据选择的职业,向getRamdom传不同的最小值

  空的属性* getAttribute()

  {

  if (occupation_choice==0)

  getRandom(35,15,25,0,10);

  if (occupation_choice==1)

  getRandom(20,10,25,15,15);

  if (occupation_choice==2)

  getRandom(15,30,15,10,15);

  if (occupation_choice==3)

  getRandom(10,35,10,5,25);

  if (occupation_choice==4)

  getRandom(10,25,10,30,20);

  if (occupation_choice==5)

  getRandom(5,15,5,15,45);

  }

  //将角色属性输出到显示器上

  类输出

  {

  公共:

  void show(Baseinfoamation,Race,Attribute);

  };

  void Output:show(基本信息t1,竞争t2,属性t3)

  {

  cout ============================== endl;

   cout std:left setw(16)姓名STD:左setw(15)t1。名字endl

  cout ============================== endl;

   cout std:left setw(16)性别STD:左setw(15)t1。sex endl

  cout ============================== endl;

   cout std:left setw(16)种族STD:左setw(15)T2。race endl

  cout ============================== endl;

   cout std:left setw(16)职业STD:左setw(15)T2。职业endl

  cout ============================== endl;

   cout std:left setw(16)力量STD:left setw(15)T3。实力endl

  cout ============================== endl;

   cout std:left setw(16)敏捷STD:left setw(15)T3。敏捷endl

  cout ============================== endl;

   cout std:left setw(16)体力STD:left setw(15)T3。物理endl

  cout ============================== endl;

   cout std:left setw(16)智力STD:left setw(15)T3。intelligence endl

  cout ============================== endl;

   cout std:left setw(16)智慧STD:left setw(15)T3。智慧endl

  cout ============================== endl;

   cout std:left setw(16)生命值std:left setw(15) t3 .惠普endl

  cout ============================== endl;

   cout std:left setw(16)法力值std:left setw(15) t3 .MP endl

  cout ============================== endl;

  }

  //将角色信息保存到文档

  类别文件

  {

  公共:

  空的文件(Baseinfoamation,Race,Attribute);

  };

  void File:File(基本信息t1,竞争t2,属性t3)

  {

  流输出文件

  outfile.open(data.dat ,IOs:trunc);

  输出文件姓名: t1.name endl

  输出文件性别: t1.sex endl

  输出文件种族 t2.race endl

  输出文件职业: t2 .职业结束

  输出文件力量: t3 .实力endl

  输出文件敏捷: t3 .敏捷endl

  输出文件体力: t3 .物理结束

  输出文件智力: t3 .智能结束

  输出文件智慧: t3 .智慧终结

  输出文件生命值: t3 .惠普endl

  输出文件法力值: t3 .MP endl

  }

  //主函数

  int main()

  {

  baseinformationplayer

  种族玩家_种族;

  属性玩家_属性

  输出玩家_展示

  文件保存;

  int播放器_选择

  做

  {

  玩家。getbaseinfoamation();

  玩家_种族。getrace();

  player _ att。getattribute();

  player_show.show(玩家,玩家_种族,玩家_ att);

  cout结束

  cout 是否继续生成游戏角色?恩德尔

  cout 0 .结束生成1.继续生成恩德尔

  宫颈癌前病变球员_选择;

  } while(player _ choice);

  save.file(player,player_race,player _ att);

  返回0;

  }

  7.类图

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: