举个例子,生成一个10×10的矩阵。
定义一个存放待消除数字坐标的数组,遍历矩阵所有子集,遍历的内容是,如果数组中不存在当前数的坐标则进行判断
判断它的四个方向是否有相等的值,
递归判断这个方向的下一个数是否仍然相等。直到递归结束,如果递归次数大于一次,将这些数的坐标存入数组。
直至遍历结束。
将数组中所有坐标位置的数设置为空。
上面是消除三个以上在一起的算法。消除之后,会有一个宝石掉落填充被消除区域的过程。
这里需要一个算法。待会补充
所有宝石都掉落完成之后,消除区域到了上方。这里挺好弄的,就随机数填充空余区域。
这是我简单的思考,感觉效率很低,有大佬优化一下嘛?
补充:
三消游戏中长时间没有操作系统会进行提示,优先提示能消除三个以上的。这个算法如何实现?