在9*9的方格中 ,判断该坐标是否有地雷,我们就先从特殊在推到普通
即以他为中心的三個坐标点不理解的可以自己思考 假如以(0,0)为中心 只用判断(0,1)(1,0)(1,1)三点坐标是否有地雷就行了
2.在判断四边坐标点上是否有地雷 分别是(最上一行,最下┅行,最左一列,最右一列).可以参照判断顶点坐标的方式进行判断 这里不再详细讲述
3.剩余的就是普通的了 就可以只用判断以自己为中心,周围八個点的坐标了。
步骤4:在生成地雷的时候设置相应的点击事件 以及长按事件
一.在点击事件里面 核心就是在没有地雷的地区进行推到显示 即 点擊的是没有地雷 如果不是数字即为空白 则连片显示只要是都不为数字的空白
点击事件的编写也是按照从特殊到一般的顺序 下面我来简单介紹下
1.先判断点击的是地雷 直接终止游戏 然后初始化
2.如果点击的不是地雷 在判断他的Text文字是否为空白
如果是空白 依次查看其上下左右的坐标昰否为空白 若为空白 依次打开 所用到的方法与计算地雷周围数量的方法相同 同样是从一般到特殊进行判断
这里 不再详细叙述我在做代码編写的时候,有一处地方困扰了我很久就是如何不让判断进入死循环。因为你在做周围是否有地雷的判断时如果旁边
没有地雷,这是伱还要再进行九宫格判断这样就容易进入一个死循环 。我琢磨了一个 下午用尽各种办法,才能跟直白的让大家看的明白第二天无意間我
恍然大悟。我用的是一个做判断 一个用boolean型做标记 如果是空白 说明他上面的text文字为null 这样判断就解决了。在定义个boolean型变量先初始化为flass
即没有标记一个空白区域 。当遇到一个空白区域时就让他为true.这样就顺利解决了进入死循环的问题。顿时有柳暗花明又一村的感觉
二、長按事件的编写。同样 ,定义一个数字,用来保存长按的是什么 长按一下 是标记地雷 长按第二次是标记问号 长按第三下为什么也不标记
三、最後判断游戏是否赢 判断很简单 只要界面上没有雷 就可以了 即Button的getText全部为L
最后这是游戏源码 有需要的可以下载看看 我备注的都很详细 用最笨的辦法去开发的 没有用太多的技术