源码简介

本项目是一个简单的安卓扫雷游戏应用源码,源码备注很详细,算法不复杂,只用最简单的推理 。有兴趣的可以看下下面的开发步骤

本文主要介绍扫雷游戏的开发 ,本扫雷游戏为简单的扫雷游戏 默认为9*9方格 中有10个地雷
游戏规则估计大家都应该懂 我这里 不再介绍
步骤1.构建游戏框架 即 建立9*9的方格
使用for循环 注意 :要使用TableRow.LayoutParams为for循环里面的Button设置width和height
演示代码

		TableRow.LayoutParams layoutParams=new TableRow.LayoutParams(landmineWidth,130);
		button[i][j].setLayoutParams(layoutParams);

步骤2.随机生成10个雷 判断该坐标是否有雷 初始化之前设置全部为没有雷
演示主要代码:

Random random=new Random();
for (int i = 0; i
步骤3.初始化雷旁边的数字 这个是该游戏的核心算法 此处在生成地雷以及初始化地雷旁边的数字 我使用的是一个障眼法。即先设置字体颜色跟Button背景颜色相同,当点击的时候,在设置其字体颜色为黑色 这样就以为是真的在上面覆盖了一层。
设置字体颜色为0xD3D3D3 就可以与Button背景颜色相同了
最简单的也是最笨的办法 用到的是九宫格递推法 下面简要说明步骤

x-1,y-1		x-1,y		x-1,y+1
x,y-1		x,y		x,y+1
x+1,y-1		x+1,y		x+1,y+1

实例坐标
(0,0)		(0,1)		(0,2)
(1,0)		(1,1)		(1,2)
(2,0)		(2,1)		(2,2)

在9*9的方格中 ,判断该坐标是否有地雷,我们就先从特殊在推到普通
1.先判断四个顶点坐标 分别是(左上,左下,右上,右下) 即如下坐标(0,0)(8,0)(0,8)(8,8)而且只用判断三次就行了
即以他为中心的三个坐标点。不理解的可以自己思考 假如以(0,0)为中心 只用判断(0,1)(1,0)(1,1)三点坐标是否有地雷就行了
2.在判断四边坐标点上是否有地雷 分别是(最上一行,最下一行,最左一列,最右一列).可以参照判断顶点坐标的方式进行判断 这里不再详细讲述
3.剩余的就是普通的了 就可以只用判断以自己为中心,周围八个点的坐标了。

步骤4:在生成地雷的时候设置相应的点击事件 以及长按事件
一.在点击事件里面 核心就是在没有地雷的地区进行推到显示 即 点击的是没有地雷 如果不是数字即为空白 则连片显示只要是都不为数字的空白
点击事件的编写也是按照从特殊到一般的顺序 下面我来简单介绍下
1.先判断点击的是地雷 直接终止游戏 然后初始化
2.如果点击的不是地雷 在判断他的Text文字是否为空白
如果是空白 依次查看其上下左右的坐标是否为空白 若为空白 依次打开 所用到的方法与计算地雷周围数量的方法相同 同样是从一般到特殊进行判断
这里 不再详细叙述。我在做代码编写的时候,有一处地方困扰了我很久,就是如何不让判断进入死循环。因为你在做周围是否有地雷的判断时,如果旁边
没有地雷,这是你还要再进行九宫格判断。这样就容易进入一个死循环 。我琢磨了一个 下午,用尽各种办法,才能跟直白的让大家看的明白。第二天无意间我
恍然大悟。我用的是一个做判断 一个用boolean型做标记。 如果是空白 说明他上面的text文字为null 这样判断就解决了。在定义个boolean型变量,先初始化为flass
即没有标记一个空白区域 。当遇到一个空白区域时,就让他为true.这样就顺利解决了进入死循环的问题。顿时有柳暗花明又一村的感觉。

二、长按事件的编写。同样 ,定义一个数字,用来保存长按的是什么 长按一下 是标记地雷 长按第二次是标记问号 长按第三下为什么也不标记
三、最后判断游戏是否赢 判断很简单 只要界面上没有雷 就可以了 即Button的getText全部为L
Andorid游戏源码安卓扫雷有详细注释源码 Andorid游戏源码安卓扫雷有详细注释源码

1条源码讨论
发表评论

您必须登录才能评论.

沙发 Specher 2015-04-21 下午7:24

分辨率没有处理

©2013-2018 JavaApk.com· 鲁ICP备13032311号-1· Powered by WordPress· Theme by JavaApkTM · 网站地图.512 queries in 1.008 seconds