1 / 15
文档名称:

网络棋牌游戏设计方法.doc

格式:doc   大小:49KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

网络棋牌游戏设计方法.doc

上传人:1314042**** 2021/2/15 文件大小:49 KB

下载得到文件列表

网络棋牌游戏设计方法.doc

文档介绍

文档介绍:先前在论坛中看了一位朋友让大家给他查看一下他写的推箱子游戏为什么出错,我第一想法就是这很难做到,别人写的程序,特别是实现流程和逻辑只有作者本人比较清楚,外人是要花费一定时间才能把握程序的中主体设计思想再进一步研究。我想除了学****或项目要求是很少人愿意花这样的精力去读别人的代码的,而粗看他的代码,我觉得是他本人在程序设计的思想上出了差错,而细想现在对引擎或硬件知识介绍的多却很少有讲解怎么实现对现实的抽象,即怎么合理的去设计游戏,实用软件所以想写这样一篇文章来和大家探讨一下“棋盘”游戏的设计思路。 
  “棋盘”游戏的种类丰富,俄罗斯方块,推箱子,象棋,五子棋等等这些都可以归类到“棋盘”游戏中来。面对这类游戏设计的时候,我本人的见解是首先对“棋盘”做研究,实在不行再去研究“棋子”。换句话说,就是以游戏中的活动区域为研究对象,像象棋就是他的棋盘,俄罗斯方块就是他整个的方块的活动区域。我们这里姑且就把他叫做“棋盘法”。 
  一 “棋盘法”基本实现方法 
  “棋盘法”实现起来其实很简单,一般来说就是把棋盘看作一个网格,那么我们就把他看作与之对应的二维数组。然后适当组织数据结构去抽象旗子,制定规 
则,这样就很容易实现游戏。 
  二 “棋盘法”的优缺点 
  任何一个算法或思想都是有优缺点的,而我们的“棋盘法”的最大优点就是可以方便我们组织数据结构,简化了游戏规则的编写,使我们编程时思路比较清晰直观,通常就是直接根据游戏实际规则编写就可以了,这个我们会以实例加以说明。然而他最大的缺点就是可能耗费大量内存,试想,如果我们的棋盘规格很大,那我们就得开辟一个比较大的二维数组,并且如果你要将代码移植到单片机,ARM等硬件平台上。那你就不得不考虑自己的方法问题,在这些硬件平台上内存资源是极其宝贵的。也许有朋友会说那在PC机上总可以的。的确现在PC机资源丰富,功能强大,可有时候还是不能如你所愿。一个很经典的例子就是五子棋的人工智能,为了让五子棋在人机对战中具备攻防兼备的智能,我们只有开辟一个于棋盘规格相呼应的二维的树组来记录棋盘上各点的胜算几率,(有兴趣的朋友可以到网上去找找资料)这样的话,在DOS下你就只能开辟一个约 10X10 的棋盘,即使在WINDOS下也只能大约 16 X 16 的棋盘。(当然,这里是说直接开辟数组,采用特别技术的不算)。所以说,这个
“棋盘法”也是有他自己的限制的。 
  三 “棋盘法”的适用条件 
  根据上面的介绍,我们应该很容易总结出“棋盘法”的适用条件。即棋盘规格适中,棋子会频繁的在棋盘中移动。游戏规则若复杂更应首先推选“棋盘法”。很好的一个例子就是象棋。象棋的走法规则复杂,而采用棋盘法就可以很直观的把规则做出来。当然其中要注意的是,程序员要考虑好使用内存的大小,考虑好游戏编写方法和内存数据管理技巧的相匹配。比如,一个很经典的游戏 -- 贪食蛇。他就不适合用“棋盘法”或是说用这个方法不合算。贪食蛇的棋盘很大,可蛇身并不会很大,若采用“棋盘法”那内存无疑是浪费,而且在规则实现上也是直接以蛇身作为研究对象好解决问题。所以在编写这类游戏时得在宏观上对他有个较全面的考虑。 
  四 “棋盘法”的例子 
  前面说过,可以用“棋盘法”编写的游戏很多,我们以前玩的小游戏我基本都写过,基于方便说明问题和论坛朋友提出的帮忙看看他的推箱子游戏。那下面我们就拿推箱子游戏来说明“棋盘法”的编写过程。
  1 前期准备 
  在编写这个游戏之前,我们先个游戏找个主题,我的是“植树”。即“箱子其实就是树,由一个小人搬运到树坑中。首先我们开辟一个 12X12 大小的二维数组作为棋盘。然后我们思考一下推箱子的棋子有哪些?一个是小人,可移动的数,还有树坑。我们的游戏过程也很简单,在棋盘上有一圈篱笆,这个是小人的活动方法,其中有几个固定的树坑,还有分散在不同地方的树,小人要推动这些树全部进入树坑就算游戏通关。有了以上思考,我们就着手来实现。 
  2 定义数据 
  我们开辟一个 12X12 的二维数组表示棋盘,然后我们来定义个数值代表的含义。数值为 0 表示此格子为背景,1 表示为篱笆,2 表示为树,3 表示为树坑,4表示人小人,5 表示为树已移植到树坑。
 
有了此定义,我们就写出显示各棋子的模块:
void Dot_pawn(char x, char y, char mode); /* 在棋盘相应位置画出棋子,其中mode为 0 表示背景,1 表示篱笆,
2 表示未移植树,3 表示树坑,4 表示人, 5 表示树种坑中*/
void Dot_pawn(char x, char y, char mode)
{
char *name_bmp;
switch(mod

最近更新

高三生物教学工作总结报告高三生物教学工作总.. 49页

矿山数字化与智能化转型 28页

祝朋友生日快乐的文案45条 53页

小学生春节日记范文集锦(4篇) 49页

鼓励高考学子的祝福语摘录75句 52页

月度教案 糖果宝宝小班教案范本汇集(5篇) 78页

兔年感恩节祝福语 59页

海底世界教案1500字 73页

春节快乐祝福语句子43条 57页

积雨辋川庄作-获奖课件名师公开课 14页

第1章---音响技术基础-现代音响与调音技术-教.. 187页

第4章-汽油机电控点火系统-汽车发动机电控技术.. 33页

第一章-《古代文论选读》导论-《古代文论选读.. 26页

第七章--遥感应用---遥感技术电子教案课件 23页

高精度可控动态标准源的关键技术研究的开题报.. 2页

高等学校教师教学水平综合评价研究的开题报告.. 2页

高炉冶炼钒钛磁铁矿综合炉料熔滴性能优化研究.. 2页

高浓度含氟废水的处理及氟的回收研究开题报告.. 2页

高校财务分析体系研究的开题报告 2页

高校教学教务管理流程优化研究——以天津外国.. 2页

高校学生法律信仰的缺失与培育的开题报告 2页

高校云数据中心基础架构的研究与实现的开题报.. 2页

高效杀虫剂茚虫威的合成研究的开题报告 2页

高性能硅橡胶复合材料的制备的开题报告 2页

高强箍筋足尺混凝土柱轴心抗压性能研究的开题.. 2页

高墩连续刚构桥刚度与开裂分析中期报告 2页

高分子纳米复合造影材料研究的开题报告 2页

高中音乐课中的小组合作学习教学实践研究的开.. 2页

妇产科市级重点专科汇报 26页

(完整版)北京市家庭居室装饰装修工程施工合同.. 15页