2021快递停运日期?
{2021快递停运日期?现在的时代基本上人人都开始网购了,所以可以看的出来快递行业对于我们...
游智攻略网带大家认识并深入了解android小游戏,希望能帮你解决当下所遇到的难题。
1. 游戏规则
扫雷是玩法极其简单的小游戏,点击玩家认为不存在雷的区域,标记出全部地雷所在的区域,即可获得胜利。当点击不包含雷的块的时候,可能它底下存在一个数,也可能是一个空白块。当点击中有数字的块时,游戏会展现当前点击块所包含的数字。当点击空白块时,地图会展开,形成一个大小和形状不规则的图形,该图形的边界时数字块,也可以想成展开的是一个被数字包围着的不规则图形。
1.1 数字生成规则
扫雷游戏中是通过数字来判断雷的位置的,那么,数字的生成规则是什么呢?假设游戏中只有一个雷,那么,他的将被1这个数字包围着,如果遇到边界就忽略。如图:
1
1
1
1
雷
1
1
1
1
雷
1
1
1
可见,游戏是先生成雷然后再根据雷的位置生成数字的,我们再看下面的图:
1
1
1
1
雷
2
1
2
雷
1
1
1
在上图中,块中有两个数字为2的块,它是数字叠加的结果,围绕着雷的区域重合了,重合的区域块的数字相加,该块的数字就会变成相加后的数字。
1.2 本博文的例子扫雷的规则
玩家需要把所有的空白块点开,留下玩家认为有雷的块,当所剩余的块数和雷的数量相等时,玩家胜利。如果在此之前,点到有雷的方块,玩家失败。
2. 游戏的算法和数据结构
2.1 空白块展开算法
空白块的展开几乎是扫雷游戏的核心了。上面说到,扫雷游戏时,点中空白块,游戏的地图块就会展开,我们可以观察到:空白块是一层一层展开的,所以,地图展开算法我们就用广度优先搜索。也许有人会问:可以用深度优先搜索算法吗?答案是可以的,但是如果在这里用的话,效率会比广度优先搜索算法效率低。
2.2 扫雷的数据结构
(1)方向数组
int[][] dir={
{-1,1},//左上角
{0,1},//正上
{1,1},//右上角
{-1,0},//正左
{1,0},//正右
{-1,-1},//左下角
{0,-1},//正下
{1,-1}//右下角
};
方向数组在展开空白块的时候回用到,因为广度优先遍历就是在地图中朝各个方向走。
(2)Tile类
该类表示游戏中的“块”,我们给它声明三个成员。
short value;
boolean flag;
boolean open;
value存储该块的值。-1表示雷块;0表示空白块;>0代表数字块。
flag存储该雷是否被玩家标记(在本例子中无作用,保留,方便扩展)。
open存储该块是否被用户点开过。
(3)Tile数组
Tile数组代表块的集合,及游戏的地图,存储着游戏的主要数据。
(3)Point类
Point类代表“位置”,声明Point类方便我们在地图中生成随机位置的雷。Point类还要重写hashCode和equals方法,为了比较位置与位置是否相同。
(4)Mine类
对上面的数据结构的封装。
Mine构造函数:对游戏地图的参数设置,比如绘制的位置,绘制的大小,块的大小,生成的雷数等。
init()方法:清空并初始化游戏地图。
create(Point p)方法:在地图中随机生成雷的位置,并产生数字。参数p是不产生雷的位置,p点可以传入用户第一次点击时的位置。生成随机位置的雷比较快速的办法是:先把地图中除p位置外所有的位置加入到链表中,然后生成0到链表大小-1之间的随机数,根据生成的随机数在链表中取元素,取完元素就把该位置从链表中移除,并把Tile数组中该位置的Tile的value设为-1。重复执行操作,直到生成的雷个数满足要求。产生数字的办法:遍历Tile数组,遇到雷就将他身边的八个的位置的value值加1,如果八个位置中有雷,或者该位置不存在,不执行任何操作。
open(Point p,boolean isFirst)方法:p代表点开某个位置的块,即Tile数组的索引。isFirst传入是否是第一次点击屏幕。该方法要对是不是第一次点击而作不同的操作,当玩家第一次点击块时,调用create函数生成地图。否则就进行展开地图等操作。
(5)MainView类
视图类,负责绘图和操作Mine对象。
3. 代码示例
Mine.java
详细
1、割绳子 v1.0
热门益智游戏Cut the Rope续作,游戏中你需要根据不同的情况去切断糖果的绳子、点破气泡、按触吹气装置或者掉进传送袜子等等,来使糖果掉到那可爱的小怪兽嘴里!
2、盗墓手记 v2.0
盗墓手记是一款盗墓题材的益智解迷游戏。为了秦始皇的宝藏,一名盗墓者进入了秦始皇古老神秘的陵墓。他必须面对由兵马俑组成的迷阵。只有突破这一切,才能夺宝而归!
3、数独空间 Sudoku Brainiak Free v2.3.6
九宫格数独,是一种源自18世纪末的瑞士,后在美国发展,这种游戏全面考验做题者观察能力和推理能力,虽然玩法简单,但数字排列方式却千变万化,所以不少教育者认为数独是训练头脑的绝佳方式!
4、瓷砖迷题 v1.4
瓷砖迷题这是一款很动脑筋玩的一款游戏,游戏中你将遇到300多个脑力测试关,他将把你的大脑训练成最佳的状态。游戏的乐趣会让你欲罢不能;培养你的智慧和创造性;游戏的同时也是在优化你的思维过程。
5、移动箱子
移动箱子Move the box是一款富有逻辑思维的益智游戏,很具有挑战性和娱乐性。游戏的玩法其实就是左右移动箱子,如果同种颜色的箱子有三个或三个排成一行,就会消除掉,在规定的移动步数内把箱子消除就算赢。
6、木乃伊迷宫 V1.0
金字塔中有着难以想象的宝藏,可是那里陷阱重重,还有可怕的木乃伊和迷宫,聪明的你要怎么利用迷宫捆住木乃伊并逃走呢?
7、潘神的迷宫 v1.0
该游戏以同名电影《潘神的迷宫》和Iphone/android知名解谜游戏为蓝本作为修改。玩家需要在完全免费的3000个关卡中移动迷宫中石头,每关的难题等级也各不相同,共分1-4级,快来挑战一下自己的逻辑思维吧!
8、古墓解迷 v1.2
厌倦了滑动块拼图设计陈旧?那么,这是为你而设计的埃及风格。游戏的目标是,在墓室里通过移动木乃伊,获得钻石。800个关卡,全部是免费的!Android市场最有价值的,最上瘾的益智类游戏。
9、水果忍者(竹林版) V2.4
水果忍者(竹林版)是Android平台一款刺激好玩、容易上手却让人难以离手的动作游戏,玩家将会在游戏中扮演一个讨厌水果的忍者,用锋利的刀切开各种水果。水果忍者号称史上最爽快、最鲜甜多汁的游戏。
10、忍者小鸡 v1.4
这是一款比较考验玩家反映力的横版过关益智小游戏,画面和音乐都非常可爱。 玩家控制一只小鸡躲避沿途障碍,吃到尽量多的松果和金币,并且把蛋生在不同位置的篮子里。考验玩家的智力!
11、狂热雨果
知名益智游戏大作狂热雨果是一款Android平台上有趣的益智冒险类游戏,玩家需要控制主角在矿洞中寻找黄金、钻石和红宝石,寻宝的过程可不是一帆风顺的,你需要注意躲避障碍物!
12、大家来找茬美女篇v1.2
找茬游戏,相信大家都比较熟悉的了,这款游戏的目的就是找出不同的地方,每个关卡都有多个不同的地方需要你去快速观察,然后找出他们不同之处,每个关卡都有时间限制,需要在短时间内完成这样的任务。
13、疯狂的积木 v1.3.1
本游戏是由国内优秀开发团队精心打造的手机益智类游戏,支持Android及ios两个平台。该游戏以积木搭建、保持重力平衡为主题,在限定时间内,将陆续出现的所有积木搭建在台面上,并始终维持平衡即可过关。
14、忍者狂奔一百层
市面上有众多的“一百层”类的游戏,大多都是单一的向上或向下跳跃,看你能否在最短时间达到终点。
15、青蛙过河 V1.0.1
这是一款经久不衰的游戏,它的前身我们很早就见过了。在游戏里青蛙会出现在最底端,然后你可以通过点击或倾斜使青蛙其行走,同时要注意躲 避途中的障碍物,并保持在河流中的漂浮物上。
16、双模五子棋 V1.0
推荐理由:对于五子棋,大家都不会陌生吧,呵呵。经常和朋友家人一起玩五子棋,虽然简单,但是考验你对全局的掌握和判断能力是非常强的,只要一步小心走错一步都有可能满盘皆输!
17、中国象棋 V3.2.0.0
本款游戏专门针对Android/OPhone系列手机开发。通过触摸屏幕操作棋子的移动,操作方便简单,界面美观,给您一个移动的棋盘,让您和您的朋友随时体验传统的中国象棋游戏带给你们的乐趣。
18、迷宫滚球 v1.0
迷宫滚球是一款迷宫钢珠游戏。该游戏Symbian系统上拥有200万的下载次数,游戏利用重力感应控制钢珠,使得钢珠顺利通向目的地即可过关!不过这游戏的重力感应很灵敏,不容易控制噢!
19、是男人就撑过15秒 V1.2.4
是男人就撑过15秒是一款用手机的重力系统玩的游戏,需要敏捷的躲避力,在陷阱发射的弹幕下存活时间超过15就算胜利。游戏可玩性高,音效好,工作累了玩玩这游戏,值得推荐。
20、24拼图 V4.21
24个数字拼图是著名的iPhone益智游戏,现在出现在Android平台,在一个5x5框架组成的数字编号,要求移动,使其按照顺序排列,有点难度,很耐玩,有意思,推荐下载。比比谁用的时间最少!
其实到九游有这一栏