首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[转]连连看核口算法详解

2012-12-20 
[转]连连看核心算法详解http://bbs.9ria.com/viewthread.php?tid63206最近做了个连连看游戏,综合网上各种

[转]连连看核心算法详解
http://bbs.9ria.com/viewthread.php?tid=63206

最近做了个连连看游戏,综合网上各种不同的思路,整理出了个人认为大家都比较好理解的一套思路。

游戏规则:很简单,就是点中两个互相匹配并且可以通过不多于两个折点的折线连在一起的方块后,这两个方块就可以消掉。
(说明:下面的行和列按照现实的行和列,并不是按照flash坐标系的坐标,请大家按需转换)

连通算法:
1.直连型
2.一折型
3.两折型

下面我们来分析每一种情况:
直连型
直连性又分为两种情况:横向直连,纵向直连。
首先是横向检测:










Line类结构如下:





图(6)



图(7)水平延伸



图(8)求得水平延伸公共范围



从图(8)可以看出,左边缘(第零列)有一对叉可以直连,所以红色棋子是可以“二折连通”的!
       
private function checkLink(a:Point,b:Point):Boolean {                        if (a.x == b.x && horizon(a, b))         {                return true;         }         if (a.y == b.y && vertical(a, b))        {                return true;        }          if (oneCorner(a, b))                {                       return true;           }        else         {                return twoCorner(a, b);        }}

热点排行