一、介绍

扫雷游戏是一款玩法简单的小游戏,无论是孩子还是老人,都可以在休息的时候玩上一局从而轻松而有效地舒缓压力。而且真正的扫雷高手还可以通过竞速(在最短的时间内完成扫雷)来感受乐趣。

二、功能描述

游戏界面可以分为三个模块:菜单栏,游戏数据显示区域以及雷区。菜单栏包括游戏难度的选择和排行榜的查询以及游戏帮助。游戏数据显示区域包括地雷计数区、计时区和重新开始按钮。雷区就是玩家的游戏区域,当玩家在游戏过程中用鼠标点击某一模块,系统会自动作出相应的响应,这就是游戏中的鼠标事件。

当玩家点开第一个格子时雷区开始布雷同时计时开始。然后会在该格子上显示周围8个格子的雷数(如果没有雷则自动点开周围的格子),玩家就需要通过这些数字来判断雷的位置,将是雷的格子标记为小红旗。

若玩家认为已标记的格子时错误的,可以再次右击该格子来取消标记。当某一格子被标记时,对于该格子的单击操作是无效的(防止玩家误点击导致游戏失败)。

如果玩家将某一格周围8个格子中的雷标记了出来,双击该格子会自动将周围的格子点击一遍,这样可以简化玩家的操作。

当玩家将全部的地雷标记出来并且其他的格子点开时,游戏结束。但是如果玩家不小心点到了地雷就会游戏失败,系统自动显示出所有的地雷。如果玩家标识的地雷数量超过了该难度下规定的雷数,计数区会以负数显示超出的雷数并且游戏不会结束。

1.扫雷游戏用例图

从上述扫雷游戏功能描述以及用例图可以分析出,整个扫雷游戏中,玩家所能进行的操作有:选择难度、开始游戏、重新开始游戏和记录查询等。

2.扫雷游戏功能需求

本次扫雷设计需要实现的主要功能有:

(1)玩家可以选择合适的游戏难度

点击游戏界面左上角菜单栏中的“游戏”菜单,会出现出现“初级”、“中级”、“高级”、“自定义”四种选项。在玩家选择难度之后游戏将会改变界面尺寸,并改变雷的总数。前三种雷数和尺寸都是固定的,无需玩家设置,而自定义则是玩家自己定义的。

(2)进行扫雷游戏

游戏界面包括菜单栏,游戏数据显示区域以及雷区,当玩家点击雷区中的任意一格的时候游戏开始,雷区开始随机布雷,玩家需要在最短的时间内找出雷区中所有的地雷,并加以标识。

扫雷的基本操作包括鼠标左键单击和右键单击两种。其中左键用来点开玩家认为不是雷的格子,右键标记玩家认为是雷的格子。

左键单击:玩家在判断出该格子下没有雷时单击该格子,可以将该格子点开。如果该格子周围有雷就会显示周围雷的数目(由于周围最多只有8个格子,所以最多只能显示8);如果格子上什么也不显示(也就是为空),系统就会自动调用递归的方法打开附近的格子。如果点到了有地雷的格子,那么游戏结束,系统显示所有雷的位置。

右键单击:玩家可以通过使用鼠标右键单击来标记自己认为是雷的格子,通过标记可以有效的提高扫雷游戏的效率。再次右击该格子可以取消标记,且格子被标记的时候鼠标单击无效(防止玩家误操作导致游戏失败)。

(3)游戏计时

当点击雷区任意一个格子的时候雷区开始布雷同时计时开始,计时标准是一秒增加1。如果游戏失败时,则计时停止。如果玩家开始了新游戏,计时也会重新开始。

(4)标记地雷

当玩家认为格子下有雷时可以右击格子来标记该格子,被标记的格子显示小红旗。再次右击可以取消标记,且格子被标记的时候鼠标单击无效(防止玩家误操作导致游戏失败)。如果玩家标识的地雷的数量超过了该难度下规定的雷数,计数区会以负数来显示超过的雷数并且游戏不会结束。

(5)统计功能

当玩家游戏胜利后会弹框提示并可以输入玩家的名字,确认后本次游戏的记录会被保存。玩家可以点击菜单栏上的“游戏”菜单,再点击其中的“扫雷榜”即可查看游戏的最佳记录。

(6)退出

点击关闭按钮可以结束游戏。

3.扫雷游戏界面需求

(1)游戏菜单

玩家有5项可以选择,玩家在点击初级时游戏界面的尺寸会变为初级的大小,雷区重新初始化,变为一共9*9的格子,其中有10颗是地雷;中级一共有16*16个格子,其中有40颗是地雷;高级一共有16*30个格子,其中有99颗是雷。除此之外,玩家还可以自定义难度,在弹框中填写雷数与尺寸。

玩家通过点击鼠标右键来标记自己认为是雷的格子,通过标记可以有效的提高扫雷游戏的效率,再次点击右键可以取消标记。

扫雷榜,记录玩家不同难度的最短时间。

(2)游戏区域

游戏区域由扫雷信息统计区和雷区组成,其中扫雷信息统计区又分为计数区、计时区、重新开始按钮。

雷区的雷数,每个难度对应的雷数都不同,初级、中级、高级分别对应10、40、99个雷。

计数区初始显示的雷数由难度而定,每次标记地雷雷数均减1,如果玩家标记的地雷的数量超过了该难度下规定的雷数,计数区会以负数显示超过的雷数。

当玩家点开第一个格子雷区开始布雷同时计时开始,一秒加1,直到游戏胜利或者游戏失败的时候停止计时。

4.扫雷游戏功能模块

游戏在功能上分为6个模块:

(1) 游戏界面

(2) 布雷

(3) 鼠标事件

(4) 地雷判断

(5) 游戏胜利(结束)

(6) 游戏失败(结束)

三、运行演示

效果图展示

Java练手项目3:基于Java的经典扫雷游戏(入门必备)!相关推荐

  1. java练手项目_20个Java练手项目,献给嗜学如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. 7875643 ...

  2. 【Java练手项目七】Java项目实战之天天酷跑

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  3. 推荐几个适合新手的Java练手项目(好玩又有趣)

    Java练手项目第一波 一.坦克大战 链接:https://www.bilibili.com/video/BV1zP4y1b7gw/?spm_id_from=333.337.search-card.a ...

  4. 百看不如一练,55个Java练手项目(附源码+视频教程),全都在这里了

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,我熬了几个通宵,终于整理出了55个培训机构内部 ...

  5. java练手代码大全手机版_20个Java练手项目,献给嗜血如狂的你

    过年了都放假了,宅在家给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行 ...

  6. 个 java的_20个Java练手项目,献给嗜血如狂的你

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...

  7. java练手代码大全手机版_20个Java练手项目,献给嗜血如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固: JAVA基础 ...

  8. Java练手项目2:基于Java的坦克大战游戏(学习Java必备!!!)

    1.引言 随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可 ...

  9. java实践项目_20个Java练手项目,实践才是硬道理

    JAVA基础 Java编程语言(新版 2. Java进阶之设计模式 3. JDK 核心 API 4. MySQL 基础课程 5. 正则表达式基础 6. JDBC 入门教程 J2SE & SSH ...

  10. 有哪些值得推荐的 Java 练手项目?(第一天)

    大家好 我收集整理了大量Java项目,当然后面会持续更新Java相关Java分享给大家, 下面大概整理了超过50个Java项目,前后端分离的 单机应用 微服务版本,应该是非常全面的了,今天分享第一部分 ...

最新文章

  1. 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic
  2. 20.Feature分支
  3. 网站后端_Flask-第三方库.利用Flask-Socketio扩展构建实时流应用?
  4. linux 下的远程上传命令行,使用scp命令用命令行从服务器上传下载文件
  5. php注册登录遍写入 遍验证,在文件指定行中写入内容的php...-自动注册登录验证机制的php代...-php中出现Undefined index报错的修复方法_169IT.COM...
  6. JS系统库:预定义对象(内建对象)
  7. 网络编程之OSI七层协议略析
  8. 高效率去掉js数组中重复项
  9. 服务器java 客户端c_Java客户端和C ++服务器通过TCP套接字发送和接收
  10. 泛微oa主表赋值明细表_OA系统学习--三
  11. JD_Source Code for problem 1379
  12. java 获取class的方法_[Java教程]Java反射定义、获取Class三种方法
  13. java jsp中文乱码怎么解决_JSP中文乱码问题全解决方案
  14. Python3抓取糗百、不得姐
  15. 优秀工程师必备的三大思维
  16. PDH性能测试之五--待续
  17. C++PTA题解(1)——厘米换算英尺英寸
  18. WebSocket实战之一
  19. html取消select下拉,jquery取消选择select下拉框
  20. uniapp + vue3微信小程序开发(6)地图展示

热门文章

  1. 长亮科技发布2018年报:营收首破十亿元,直面蚂蚁金服竞争压力
  2. 2022年全球市场软铁氧体粉末总体规模、主要生产商、主要地区、产品和应用细分研究报告
  3. uniapp项目实现扫描二维码和NFC识别功能
  4. 申宝证券-养老概念强势
  5. 概率算法c 语言,c语言概率算法简介(Introduction to probabilistic algorithms for c languages).doc...
  6. com.mchange.v2.c3p0.ComboPooledDataSource 报红
  7. 字符串数组长度的几种求法
  8. C++ 最长回文串
  9. 转型下沉的51talk 能否在在线教育“造”出一个拼多多?
  10. 高屋建瓴 08年IT产业38个黄金技术