双人扫雷游戏
摘要:
扫雷游戏想必许多玩家都玩过这款游戏,如果你确实没有玩过,可以去网上
搜索扫雷游戏玩几局,是一款很容易上手的益智类游戏。
该游戏的游戏规则简单说就是需要玩家找到所有雷,避免“踩到”雷,而我
们需要做的就是将非雷区“扫描出来”,并获取对应的信息,比如一个数字,该
数字表示该方块区域周围的 8 个方块区域的总雷数。如果当你“扫描”到某个区
域的周围都没有雷,则会展开该区域周围的区域,直到遇到“数字”为止。如果
你推断出某处为雷时,还可以进行“插旗”标记,方便下一步的推断。最后,如
果游戏进行到最后,玩家将所有非雷区都“扫描”完成或将所有“雷区”都“插
旗”标记,则游戏获胜;反之,游戏中“踩到”雷则游戏失败。
该游戏本是单机游戏,而本人则增添了双人游戏的玩法,即双方玩家进行同
一局游戏,轮流进行“操作”,直到游戏结束。
双人扫雷游戏基于 Android 系统进行开发,采用 JAVA 语言。联机采用 Socket
通信。游戏功能包括:开启单人游戏、创建双人游戏、加入双人游戏、游戏显示
区域、游戏操作区域、重新开始、设置游戏难度等级、退出游戏。
该 项 目 所 用 到 的 知 识 点 有 : 布 局 设 计 ( LinearLayout 、 ScrollView 、
GridLayout、ConstraintLayout 等)、各种模块(TextView、Button、ImageButton
等)、Socket 通信、Handler 消息处理、继承、活动的生命周期等。
目录
双人扫雷游戏........................................................................................................1
一、项目功能介绍........................................................................................3
1、基于 Android 系统和 JAVA 语言 ..................................................3
2、游戏界面介绍..................................................................................3
3、游戏功能介绍..................................................................................6
二、Android 活动生命周期..........................................................................8
三、项目主目录文件....................................................................................8
1、MainActivity.java.............................................................................8
2、各种包与类......................................................................................9
3、res 文件 ..........................................................................................10
4、 AndroidManifest.xml ...................................................................10
四、命名规则..............................................................................................11
五、 分析 AndroidManifest.xml ................................................................11
六、 分析主界面........................................................................................12
1、 分析 activity_main.xml 布局文件...............................................12
2、 分析 MainActivity.java................................................................13
七、 分析单人游戏....................................................................................14
1、 分析单/双人游戏界面 activity_game.xml..................................14
2、 分析 OneGameActivity.java........................................................15
八、 Socket 通信实现联机 ........................................................................21
1、Socket 通信原理 ............................................................................21
2、服务端 Owner.java ........................................................................21
3、客户端 Player.java .........................................................................23
4、通信管理类 LinkManager.java......................................................24
九、 分析双人游戏 TwoGameActivity.java .............................................24
1、扫描操作........................................................................................24
2、标记操作........................................................................................25
3、请求和回应弹窗............................................................................25
4、重新开始........................................................................................26
5、设置难度........................................................................................26
6、连接信号检测机制........................................................................26
7、Handler 消息事件处理 ..................................................................26
8、退出................................................................................................27
十、 创建与加入双人游戏........................................................................27
1、创建双人游戏 LoginGameActivity.java .......................................27
2、加入双人游戏 JoinGameActivity.java..........................................28
1
一、项目功能介绍
1、基于 Android 系统和 JAVA 语言
该项目基于 Android 系统和 JAVA 语言进行开发,所以,至少需要有一定的
Android 系统和 JAVA 语言的基础知识储备。再通过该项目的学习,可以进一步
的理解各个知识点,并更熟练得运用它们。
JAVA 语言的学习,可以在哔哩哔哩搜索“JAVA”,本人看的是“黑马程
序员”的视频,链接如下。做该项目时,本人也只学习完上部。
https://www.bilibili.com/video/BV17F411T7Ao?p=1&vd_source=17a9d40e8c2
ce2fa082dd84a938d2f61
Android 系统的学习,也是在哔哩哔哩网站学习的,搜索“Android”,本人
看的是“动脑学院”的视频,链接如下。做该项目时,本人也才学习到“做计算
机的项目”。
https://www.bilibili.com/video/BV19U4y1R7zV/?spm_id_from=333.337.search
-card.all.click&vd_source=17a9d40e8c2ce2fa082dd84a938d2f61
我 也 在 CSDN 上 记 录 了 一 些 Android 的 学 习 笔 记 , 可 以 关 注
“CJ_study92”!
有了这些基础知识储备后,接下来就正式进入项目学习吧!
2、游戏界面介绍
2.1、APP 图标
本人不会自己设计图标,因此本人直接在网上找了一张跟扫雷相关的图片作
为 APP 图标,如下图所示。
2
图 1.1 APP 图标
2.2、游戏主界面
图 1.2 游戏主界面
游戏主界面如上图所示,包括一个游戏图标,和开始单人游戏、创建双人游
戏、加入双人游戏、退出游戏四个功能按钮。开始单人游戏则直接进行单人游戏;
创建双人游戏则是创建房间,等待玩家加入;加入双人游戏则是加入对应的游戏
房间;退出游戏则是退出应用。
2.3、单/双人游戏界面
图 1.3 单人游戏界面