快捷搜索:   创业  准备    游戏 

养成游戏源码,[源码和文档分享]基于java的RPG回合制游戏

养成游戏源码

[源码和文档分享]基于java的RPG回合制游戏

一、工作积累总结

1.1简介

  该项目是一个回合制RPG游戏,讲述了动物主角对抗人类,自逃出动物园开始,一路与人类对抗,提升能力,并寻找新队友组成团体,逼得人类不得不与之谈判,最终与人类达成了和平协议的故事。玩家可以通过全鼠标点击操控来体验游戏。

1.2项目特色

  该项目使用Java语言编写,可以在多个不同平台上运行。

界面设计简洁明了,操作简单易懂。

  拥有丰富的关卡,并且可反复挑战,提升能力,使后续关卡变得容易。

  拥有丰富的随机装备系统,装备种类多,且拥有自“破烂的”到“传说的”等共七种属性前缀,出现的几率逐级降低。装备可以在商店购买,可刷新当前商店货物,或者在挑战地图时随机掉落。

  拥有丰富的队伍系统,在挑战地图Area2每个地区的第一关会固定有一个新成员请求加入,之后的关卡此事件随机出现,可以在基地界面通过上阵及休息指令来安排队伍组成。

  拥有等级系统,通过反复挑战地图来提升等级,提升能力。

  拥有完整的剧情,故事情节通过地图上每一个关卡名来揭示,按照Area的顺序进行游戏,即可获得全部故事体验。

支持存读档功能,可以分多次完成游戏。

1.3项目创新

  全新的RPG回合制游戏,吸取了经典RPG游戏的基本元素:升级打怪打装备,同时配以角色养成、队伍搭配等玩法,还有丰富完整的剧情体验,非常新颖。

参考文档和完整的文档和源码下载地址:

Python练习:100行代码实现一个简易的2048游戏

一、任务目标

1.一个在命令行下的2048游戏

2.主要实现功能:判断游戏是否结束;在随机空白位置生成新的数字;上下左右四个方向上进行平移数字并将能合并的数字进行合并;接收键盘输入;将数字阵列显示到命令行下。

3.本教程基于python3

4.完成效果预览

命令行下的2048游戏二、知识基础

1.python基础知识:数据类型、变量、list、循环和判断等;

2.python进阶知识:函数、切片、迭代以及类的基础用法等;

3.模块:numpy模块中矩阵相关的操作;random模块中的几个简单函数;

  #以廖雪峰python教程为例的话学到【面向对象编程】就可以自己做起来没什么压力了。

三、游戏设计思路

  首先要有一个用于我们存储阵列数组(也就是游戏里要显示的那些数字)的东西,可以用list或者矩阵,我选择的是矩阵,主要是考虑用list部分操作实现起来比较麻烦,但是python中没有内置这种数据类型,所以用了第三方的模块numpy。

  然后就是考虑设计一个类,将游戏的属性设计成类的属性,将游戏的各种操作定义为类的方法,这样以后不管是扩充功能还是修改起来都比较方便。

四、代码框架

  按照设计思路和任务目标进行定义类,将游戏属性定义为类的属性,类的属性目前定义了两个,一个是要构建的数组的维数,就是说要做一个4*4的2048还是5*5的2048,这个方便我们后续为游戏添加新模式或者难度,另一个属性self.matrix是一个矩阵,后续也可以继续添加属性,比方说游戏得分的属性或者游戏难度的属性,或者限制游戏时间的属性等等。类的方法就是之前我们任务目标里需要实现的功能或者方法,需要注意的是并不一定是一个功能就可以用一个方法来实现,具体情况要看实现的难度。

  '''2048游戏的类'''

  def__init__self:#定义类属性

  self.dimension=dimension#维数,决定要构建几维的数组

  self.matrix=np.zerosdimension,dimension#创建一个全是0的nn=dimension维数组

  defjudge_gameoverself:#判断是否游戏结束

  defgenerate_numself:#在随机的空白为0的位置替换为1个随机的2或者4

  defleft_2048self:#向左平移合并

  defright_2048self:#向右平移合并

  defdown_2048self:#向下平移合并

  defup_2048self:#向上平移合并

  defprint_2048self:#显示

  definput_2048self:#输入

  if__name__=='__main__':#主程序

pass四、程序设计

  这个游戏最难最核心的地方在如何实现向滑动方向平移数字并将符合条件的数字合并,可以先考虑一个方向上的,我是考虑的向左方向的,然后其他方向上的都快可以通过矩阵的水平垂直变换变成向左方向的,完成平移合并的操作后再变换回来就可以了,这样可以减少代码量,也降低了难度。

  具体到每个方法的思路后续慢慢补全,注释写的比较细,应该比较容易看懂,建议新手也养成规范写注释的习惯,方便别人也方便自己。

以下源代码:

  '''2048游戏的类'''

属性:

方法:

  self.dimension=dimension#维数,决定要构建几维的矩阵

  self.matrix=np.zerosdimension,dimension#创建一个全是0的nn=dimension维矩阵

  defjudge_gameoverself:#判断是否游戏结束,如果游戏结束返回True,未结束则返回False

  '''如果水平方向上任意两个相邻的数字有相等的或者有为0的那么游戏未结束'''

  '''如果垂直方向上任意两个相邻的数字有相等的或者有为0的那么游戏未结束'''

  self.matrix=np.transposeself.matrix#先转置垂直方向变作水平方向eg:[[1,2],[3,4]][[1,3],[2,4]]

  defgenerate_numself:#在随机的空白为0的位置替换为1个随机的2或者4

  '''在随机的空白为0的位置替换为1个随机的2或者4'''

  #判断矩阵内为零的数的位置,并将索引放入到list_0中

  #判断矩阵内为0的数的个数,如果为0,那么就不再生成新的数字

  x=random.samplelist_0,1[0]#注意random.sample函数返回值类型为列表

  defleft_2048self:#向左平移合并

  '''数字向左平移'''

  '''水平向左合并'''

  '''数字向左平移'''

  defright_2048self:#向右平移合并

  foriinrange0,self.dimension:#将矩阵水平方向反转eg:[[1,2],[3,4]][[2,1],[4,3]]

  self.left_2048#注意在类中内置函数互相调用前面要加self.,也注意不要循环调用

  foriinrange0,self.dimension:#再将矩阵水平方向反转回来

  defdown_2048self:#向下平移合并

  self.matrix=self.matrix[::-1]#先上下反转eg:[[1,2],[3,4]][[3,4],[1,2]]

  self.matrix=self.matrix[::-1]#再上下反转回来eg:[[3,4],[1,2]][[1,2],[3,4]]

  defup_2048self:#向上平移合并

  self.matrix=np.transposeself.matrix#先转置eg:[[1,2],[3,4]][[1,3],[2,4]]

  self.matrix=np.transposeself.matrix#再转置回来eg:[[1,3],[2,4]][[1,2],[3,4]]

  defprint_2048self:#显示

  definput_2048self:#输入

s=input";w↑a←s↓d右:";

print";输入有误请重新输入";

  if__name__=='__main__':#主程序

留言与评论(共有 条评论)

   
验证码: