Flash小游戏-连连看算法大揭密
日期:2007年7月21日 作者: 查看:[大字体 中字体 小字体]-
这个简单游戏的技术问题是一类游戏如俄罗斯方块,纸牌游戏等制作的基础.通过对这个游戏算法的分析,特别是对检查连线的探讨,大家可以基本掌握这类游戏算法的基本思维方法.
连连看游戏规则很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连在一起的方块后,这两个方块就可以消掉.所以,下图的三种情况可以把方块消掉.笔者的游戏中,配对规则是两数相加等于100.
·Intel开发Google Earth小游戏
·用VB6.0开发猜数字小游戏
·J2ME 2D小游戏入门之计时器
·C++ Builder构建算二十四点小游戏
·生化危机4-小游戏规则 Biohazard 4
·Visual Basic小游戏:猜英雄
·J2ME 2D小游戏入门之实现爆炸
·8个与Google有关的小游戏
·将XP的小游戏移植到Win2003中
·飞机躲避小游戏---是男人就撑100秒的制作
配对的检查比较简单,只要用一个if语句,条件a+b==100就可以检验了.而两方块能否实现折线连接,则是个相对复杂的问题.笔者在这里把整个思路告诉大家.连连看的方块类似于棋盘,从一个格走到另一个格容易让笔者联想到小学数学奥林匹克竞赛中经常遇到的方格问题.虽说是小学的题目,但难度对笔者来说还是蛮大的,现在,那些题目的解答思路,笔者大概都忘光了.不过,作为计算机,可以尝试让程序把所有的走法列出来,再直接代入到条件来检验.这个算法的思路大致如下:让一个点往各方向走,走到障碍物为止.然后,其中经过的点,再往别的方向继续走下去.其中使用数组来标识各方块的相对位置.
到这里,笔者以为已经思路俱备,只欠实现了.而且,这样做有个好处,就是可移植性强.可以在别的跟折点连接有关的程序中.在本游戏中,就可以一个算法实现不同数目的折点连线的检查,并且可以随加随减.于是,笔者开始动笔写了.
写出来以后,测试才发现,这种算法在Flash中禁止执行,原因是递归超过256级,而且方阵只有5*5(把边缘算进去以后是7*7).笔者在草稿本上画了个5*5的方阵,尝试让左下方的点往右上方的点走,并且折线的折点数不超过2

图中可以发现的确好恐怖,要走的路N多,并且有些路还会相交,相交的时候,还得检查哪根线的折点少.并且还有不少的路是根本不可能行得通的.所以,才导致递归级数高(如果用循环的话,次数也将很多).
这里可以用严密的数学方法排除大部分的路,但是笔者的数学比较烂,而且实际上也没有这个必要.在Flash游戏制作中,技术是为实现规则服务的,我们不应该通过规则来表现游戏作品的技术含量.
所以,这里用一种很直观很好理解的算法,来实现连接的检验.这种算法,笔者姑且把它称作逐级算法.就是先看能否直线连接,若不行,再拐一个弯,再不行,继续拐弯.这也符合一些游戏者玩游戏时判断连接的方法.
这里,笔者把检验连接是否成功定义为一个函数checkNoBarrier(x1,y1,x2,y2),true表示连接成功,false表示连接失败.所以,返回true一般比返回false快.因为只要有一根折线连上了,就可以退出函数.而false则要所有尝试都失败了才能返回(当然,如果一开始先检验一些特殊情况如某方块给障碍物紧紧包围的话,返回false的速度会快一些,不过这些情况在后面的一般检验中也包括了,所以代码会显得散乱,但如果追求运行效率的话,用该法也未尝不可)
一级连接检验,所谓一级连接检验,就是检验两方块之间能否直线连接,其必要条件之一就是两个块的横坐标或纵坐标相等,否则,马上离开一级检验,进入二级检验.

下面以横坐标为例,说明一级连接检验的算法.
若横坐标相等,则需要检验的是在y1和y2之间的这些点中是否存在障碍物,这里可以用循环方法检验.如果没有障碍物,则checkNoBarrier马上返回true,函数马上退出.否则,需要进入二级检验.

纵坐标的检验方法类似.
- [1] [2] [3] 下一页
-
- Flash小游戏-连连看算法大揭密 相关文章:
- ·Flash小游戏-连连看算法大揭密
- Flash小游戏-连连看算法大揭密 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:Flash课件中测试题信手拈来
下一篇:时间轴控制命令介绍
精品推荐
热点TOP10
- ·Flash百叶窗制作教程
- ·Flash制作非常逼真的下雪视觉动画效果
- ·Flash:闪动的星星
- ·精彩推荐:全Flash网站制作实例
- ·FLASH 8实例教程:瀑布动画制作方法
- ·用flash制作简单拼图游戏
- ·Flash视觉效果之漫天飞雪
- ·最简单的FLASH动画LOADING制作
- ·Flash动画制作技巧:一些动画素材
- ·Flash制作超酷旋转互动相册
- ·Flash声音控制详解
- ·Flash打造碧海蓝天海鸥飞翔动画
- ·Flash AS制作下雪动画效果
- ·Flash制作滚动广告图片效果
- ·Flash实例教学:三维烟花动画制作
- ·入门级:教你用flash画画
- ·银行利率表
- ·Flash制作过渡卷动效果精美图库特效
- ·Flash制作熊熊燃烧的火焰
- ·中秋寄相思 自制Flash贺卡
特别推荐
- ·Flash简单制作实用的图片切换动画特效
- ·简易拼图游戏制作
- ·Flash教程:纯AS制作简单的MP3播放器
- ·纯AS的Loading效果四例
- ·Flash角色透视行走动作分解
- ·入门级:教你用flash画画
- ·Flash制作过渡卷动效果精美图库特效
- ·Flash制作Mac系统菜单的效果
- ·视觉欺骗
- ·Flash制作非常逼真的下雪视觉动画效果
- ·超详细图文解析 用Flash制作魔法表情
- ·Flash Action应用--鼠控3D旋转
- ·Flash打造碧海蓝天海鸥飞翔动画
- ·FLASH 8实例教程:瀑布动画制作方法
- ·Flash视觉效果之漫天飞雪
- ·Coldfusion MX技巧精华收集(1)
- ·Actionscript列表
- ·用Flash简单制作印章动画视觉效果
- ·flash8打造瀑布动画效果教程
- ·Flash里的A*Pathfinding
