好久没写技术博客了。Iteye依然这么亲切!
内存分析了连连看内部数据,找出了方块摆放的那一段数据,用程序把它读出来,放到一个二维数组里面,构成一个矩阵。
这些数据就做为这个算法的数据基础。
这是今天突发奇想,写出来的代码,结合内存读出来的数据,可以瞬间把连连看里面的方块消得个精光。
开局:
一阵电闪雷鸣,瞬间之后,就变成下面这样子了:
但本篇文章不讲这个外挂程序。只讲里面涉及到的连连看全局算法。
本算法事实上也就是在一般的连连看消除算法上,包装了下。写过连连看游戏的朋友应该都明白怎样判断两个方块是否可以消除,而本算法就是循环地判断全局所有的可消除的方块,一对一对地消掉,直到最后没有方块时才停止程序。
其实说来说去,这个算法的本质也就是深搜。基本思路如下:
从左上角第一格开始,用深搜查找它在两个转弯之内可以碰到的和它一样的方块,如果找到,就消去,把矩阵里面相应的两个数值也设成0。再以第二格为起点,用同样的方法查找和它一样的方块。以此类推,一格一格地,一行一行地遍历整个矩阵。第一遍过去,基本上都有剩下方块。于是进行第二次遍历。那么怎么判断全局的方块都已经消完了?很简单&