百家乐是最喜欢和最吸引人的娱乐之一(永久网址:hash.cyou)本站提供百家乐游戏,在线百家乐,百家乐平台,百家乐试玩,百家乐官方网站。百家乐官网链接,百家乐app下载,百家乐的玩法,百家乐赔率,百家乐技巧,百家乐公式,百家乐打法,百家乐稳赢技巧,21点,德州扑克,老虎机,快三,pk10,时时彩,北京赛车,欢迎注册发财
百家乐,百家乐官方网站,百家乐APP下载
先前在论坛中看了一位朋友让大家给他查看一下他写的推箱子游戏为什么出错,我第一想法就是这很难做到,别人写的程序,特别是实现流程和逻辑只有作者本人比较清楚,外人是要花费一定时间才能把握程序的中主体设计思想再进一步研究。我想除了学习或项目要求是很少人愿意花这样的精力去读别人的代码的,而粗看他的代码,我觉得是他本人在程序设计的思想上出了差错,而细想现在对引擎或硬件知识介绍的多却很少有讲解怎么实现对现实的抽象,即怎么合理的去设计游戏,实用软件......所以想写这样一篇文章来和大家探讨一下“棋盘”游戏的设计思路。
任何一个算法或思想都是有优缺点的,而我们的“棋盘法”的最大优点就是可以方便我们组织数据结构,简化了游戏规则的编写,使我们编程时思路比较清晰直观,通常就是直接根据游戏实际规则编写就可以了,这个我们会以实例加以说明。然而他最大的缺点就是可能耗费大量内存,试想,如果我们的棋盘规格很大,那我们就得开辟一个比较大的二维数组,并且如果你要将代码移植到单片机,ARM等硬件平台上。那你就不得不考虑自己的方法问题,在这些硬件平台上内存资源是极其宝贵的。也许有朋友会说那在PC机上总可以的。的确现在PC机资源丰富,功能强大,可有时候还是不能如你所愿。一个很经典的例子就是五子棋的人工智能,为了让五子棋在人机对战中具备攻防兼备的智能,我们只有开辟一个于棋盘规格相呼应的二维的树组来记录棋盘上各点的胜算几率,(有兴趣的朋友可以到网上去找找资料)这样的话,在DOS下你就只能开辟一个约10X10的棋盘,即使在WINDOS下也只能大约16 X 16的棋盘。(当然,这里是说直接开辟数组,采用特别技术的不算)。所以说,这个“棋盘法”也是有他自己的限制的。
在编写这个游戏之前,我们先个游戏找个主题,我的是“植树”。即“箱子其实就是树,由一个小人搬运到树坑中。首先我们开辟一个12X12大小的二维数组作为棋盘。然后我们思考一下推箱子的棋子有哪些?一个是小人,可移动的数,还有树坑。我们的游戏过程也很简单,在棋盘上有一圈篱笆,这个是小人的活动方法,其中有几个固定的树坑,还有分散在不同地方的树,小人要推动这些树全部进入树坑就算游戏通关。有了以上思考,我们就着手来实现。
根据上面的介绍,我们应该很容易总结出“棋盘法”的适用条件。即棋盘规格适中,棋子会频繁的在棋盘中移动。游戏规则若复杂更应首先推选“棋盘法”。很好的一个例子就是象棋。象棋的走法规则复杂,而采用棋盘法就可以很直观的把规则做出来。当然其中要注意的是,程序员要考虑好使用内存的大小,考虑好游戏编写方法和内存数据管理技巧的相匹配。比如,一个很经典的游戏--贪食蛇。他就不适合用“棋盘法”或是说用这个方法不合算。贪食蛇的棋盘很大,可蛇身并不会很大,若采用“棋盘法”那内存无疑是浪费,而且在规则实现上也是直接以蛇身作为研究对象好解决问题。所以在编写这类游戏时得在宏观上对他有个较全面的考虑。
Copyright © 2012-2025 百家乐- 百家乐官方网站- 百家乐APP下载 版权所有 非商用版本 备案号: