连连看全局消除算法

本文探讨连连看全局消除算法,通过深度优先遍历实现。从左上角开始,查找两个转弯内相同方块并消除,不断遍历矩阵直至所有方块消除。代码已给出,适用于边缘不可消除情况,如需改变,可在数组周围加0。
摘要由CSDN通过智能技术生成

好久没写技术博客了。Iteye依然这么亲切!

内存分析了连连看内部数据,找出了方块摆放的那一段数据,用程序把它读出来,放到一个二维数组里面,构成一个矩阵。

这些数据就做为这个算法的数据基础。

这是今天突发奇想,写出来的代码,结合内存读出来的数据,可以瞬间把连连看里面的方块消得个精光。

开局:

 

一阵电闪雷鸣,瞬间之后,就变成下面这样子了:

 

但本篇文章不讲这个外挂程序。只讲里面涉及到的连连看全局算法。

本算法事实上也就是在一般的连连看消除算法上,包装了下。写过连连看游戏的朋友应该都明白怎样判断两个方块是否可以消除,而本算法就是循环地判断全局所有的可消除的方块,一对一对地消掉,直到最后没有方块时才停止程序。

其实说来说去,这个算法的本质也就是深搜。基本思路如下:

从左上角第一格开始,用深搜查找它在两个转弯之内可以碰到的和它一样的方块,如果找到,就消去,把矩阵里面相应的两个数值也设成0。再以第二格为起点,用同样的方法查找和它一样的方块。以此类推,一格一格地,一行一行地遍历整个矩阵。第一遍过去,基本上都有剩下方块。于是进行第二次遍历。那么怎么判断全局的方块都已经消完了?很简单&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值