目 录
1 引 言 ................................................................................................................ 1
1.1 开发背景...............................................................................................1
1.2 开发目的和意义...................................................................................2
1.2.1 开发目的 ...................................................................................2
1.2.2 开发意义 ...................................................................................2
2.需求分析 .......................................................................................................... 4
2.1 功能需求...............................................................................................4
2.2 界面需求...............................................................................................4
2.3 技术上的可行性分析...........................................................................5
3.总体设计 .......................................................................................................... 5
3.1 设计思想与基本内容...........................................................................6
3.2 总体设计技术介绍...............................................................................8
3.2.1 JAVA 的图形界面.....................................................................8
3.2.2 Swing 概述...............................................................................8
3.2.3 Swing 基本组件.......................................................................9
3.3 系统功能描述.....................................................................................11
3.4 各功能模块描述.................................................................................12
3.5 主要模块流程图.................................................................................13
4 核心代码的实现 ............................................................................................15
4.1 定义雷的类核心代码实现.................................................................15
4.2 图形界面的设计核心代码实现........................................................17
5 程序运行与测试 ............................................................................................20
5.1 程序调试.............................................................................................20
5.2 程序运行.............................................................................................20
6 总 结 .............................................................................................................. 23
参考文献 ............................................................................................................ 25
1 引 言
1.1 开发背景
当前随着计算机的深入普及,越来越多的人有了个人电脑,
人们运用计算机完成许多重要的工作,计算机在人们的日常生活
中扮演着越来越重要的角色。随着计算机的广泛应用和深入发展,
当前的计算机应用早已不单局限于工作,计算机的娱乐性越来越
得到人们的关注,近年来游戏产业规模飞速成长。权威市场调研
机构国际数据集团(DFC Intelligence)日前发表报告显示,在 2012
年全球游戏市场的产值达到了 600.4 亿美元,并预测 2013 年将达
到 649 亿美元,更会在 2015 年突破 700 亿美元大关。这远远超越
好莱坞电影产业以及音乐等娱乐事业,而成为目前娱乐事业的最
大主流。
目前整个游戏产业的运作模式已经跟好莱坞电影产业的运
作模式非常相近,电影产业有制片、发行、宣传等明细分工,游
戏产业亦同,由专业的游戏研发小组负责研发游戏,也有如微软、
Steam 这类国际级经销商负责游戏发行,甚至连“游戏制作人”
也被培养成明星一样成为一种招牌,如任天堂有王牌制作人宫本
茂、SEGA 有铃木裕、KONAMI 有小岛秀夫、CAPCOM 有三上
真司,明确的游戏产业分工的确有助于游戏产业的规模发展与进
化,但也无形中让游戏开发成本大增。为了降低游戏开发成本,
开发娱乐性强成本低的游戏就成为当前的主要课题,在这种趋势
下各种小型的低成本的游戏软件应运而生。在这其中,系统自带
的小游戏也占据了相当重要的地位,与那些网络游戏和 3D 游戏
1
相比,它有编写简单、容易上手等特点,可以满足人们在完成日常
工作之余适当娱乐的需求。这些小游戏大都是以益智和娱乐为目
的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开
发。微软公司的 Windows 系列操作系统中内置了很多非常经典的
小游戏,包括扫雷,弹球,纸牌等等。
1.2 开发目的和意义
1.2.1 开发目的
我课程设计选这个题目原因是我一直比较喜欢这个游戏,对
这款游戏的操作以及玩法度比较了解,所以做起来比较容易点,
同时我也想玩玩自己亲手做出这个小游戏,所以选了这个题目,
扫雷游戏是一款智力游戏,这款游戏将一定的地雷分布在小格子
里,最终胜利是玩家将所有的地雷都找出。Java 是我们这个学期
新学的语言,通过这个课程设计,我对以前学的知识有了更深一
步的了解,这次设计的时间有限,所以我做了一个自己比较喜欢
的小游戏,刚开始做时,虽然知道主要思想但把它要表示出来真
的很不容易,通过查资料,请教同学,上网,知道了知识可能是
自己一个人要花很长时间知道的,经过这段时间的努力,终于做
出了这款游戏,虽然还有很多不足,但做出来后还是很开心的,
测试这个游戏的功能时,感觉很不错,通过这个课程设计我对以
前 java 有了一个更深一步的认识。所以这次的设计相对来说还是
很成功的。
1.2.2 开发意义
(1)培养综合运用所学知识独立完成课题的能力。
2
(2)更深入地理解和掌握该课程中的有关基本概念,程序设
计思想和方法。
(3)提高对工作认真负责、一丝不苟,对同学团结友爱,协
作攻关的基本素质。
(4)培养勇于探索、严谨推理、实事求是、有错必改,用实
践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
(5)培养从资料文献、科学实验中获得知识的能力,提高从
别人经验中找到解决问题的新途径的悟性,初步培养工程意识和
创新能力。
(6)对掌握知识的深度、运用理论去处理问题的能力、实验
能力、课程设计能力、书面及口头表达能力进行考核。
3
2.需求分析
2.1 功能需求
(1) 编写目的
这是一个基于 java 语言的一个智力小游戏,开发这个游戏主
要是为了让操作人员在业余时间里能轻松方便的玩这游戏,并能
锻炼自己的思维能力。
(3)适用群体
因为这是一个小的智力游戏而且是附带在 Windows 操作系统
下的一个游戏,所以它适合所有人员,就算是小孩也能玩这游戏,
不仅没有害处,而且对他的大脑也有很好的帮助。如果对电脑的
操作不熟练的话,可以通过学玩这个游戏来帮助初学者掌握电脑
的基本操作。
2.2 界面需求
界面是一个窗口,有菜单栏,标题栏。菜单栏里有游戏和帮
助两个菜单。在游戏菜单里能够设置游戏的开局,设置游戏的级
别,分为初中高三个游戏级别;能够记录玩家的最高得分;如果
程序员有经历还可以为游戏添加声音,在猜到雷后给一个残酷的
声音,在猜中雷后给以一个清脆的笑声,但这不是程序的重点。
还能显示雷的个数,另外用一个电子钟用来计算玩家所花费的时
间,而且能够在玩家打开其它窗口后停止计时,当程序处于当前
4
活动窗口时有接着先前玩的时间继续计时。在开局时应该有一个
快捷图标,可以不通过菜单栏直接开局。
2.3 技术上的可行性分析
可行性研究的目的是用最小的代价在尽可能短的时间内确定
问题是否能够解决。也就是说可行性研究的目的不是解决问题,
而是确定问题是否值得去解决,可行性分析研究的是在当前的具
体条件下,是否具备必要的资源和其它条件。本课题中,从经济
可行性、技术可行性方面进行研究。
(1)经济可行性:当前游戏市场,各种类型的游戏软件层出
不穷。由于游戏的开发成本巨大,游戏的开发往往具有一定的风
险性,但是一些小游戏的开发具有成本小,编写简单的优势,所
以这些小游戏在游戏开发中也占有一席之地。
在这类小游戏中包括益智类游戏,它以画面精美、游戏方法
简单等特点得到大家的认可,成为人们在工作之余不可或缺的好
伙伴。我的研究课题是扫雷游戏,这款小游戏具有投入成本小,
开发风险性小等特点。从经济可行性角度考虑是可行的。
(2)技术可行性:这款游戏使用 JAVA 语言进行编写, JAVA
是一种高效的编程语言,可以快速开发出用户需求的产品。
其.NET Framework 平台为开发者提供了庞大的类库,开发人员只
需要通过相应的接口调用需求的方法就可以实现应用程序的快速
开发。
3.总体设计
5
3.1 设计思想与基本内容
扫雷是一款相当经典的小游戏,下面是我们的扫雷程序思想。
我们可以把整个雷区看成一个二维数组.首先我们在雷
区上随机地放上雷,这可以用 random 类来实现。当没有雷的地
方被点击后就会显示一个数字表示它周围有几个雷,要实现这个
功能,,如雷区 a[i][j]:
a[1][1] a[1][2]
a[1][3]
a[1][4]
a[1][5]
a[1][6]
a[1][7]
a[1][8]
a[2][1] a[2][2]
a[2][3]
a[2][4]
a[2][5]
a[2][6]
a[2][7]
a[2][8]
a[3][1] a[3][2]
a[3][3]
a[3][4]
a[3][5]
a[3][6]
a[3][7]
a[3][8]
a[4][1] a[4][2]
a[4][3]
a[4][4]
a[4][5]
a[4][6]
a[4][7]
a[4][8]
a[5][1] a[5][2]
a[5][3]
a[5][4]
a[5][5]
a[5][6]
a[5][7]
a[5][8]
我们可以发现 a[i][j]周围存在着如下关系:
a[i-1][j-1]
a[i-1][j]
a[i-1][j+1]
a[i][j-1]
a[i][j]
a[i][j+1]
6
a[i+1][j-1]
a[i+1][j]
a[i+1][j+1]
于是 ,可以从 a[i][j]的左上角顺时针开始检测。当然,如果
超出边界,要用约束条件再加以判断!
扫雷程序还会自动展开已确定没有雷的雷区。如果 a[3][4]周
围雷数为 1,a[2][3]已被标示为地雷,那么 a[2][4],a[2][5],a[3][3],
a[3][5],a[4][3],a[4][4],a[4][5]将被展开,一直波及到不可确定的
雷区。这也是实现的关键!我们可以把数组的元素设定为一个类对
象(类中定义:第几号方块,周围雷数,是否为雷,是否被点击,探雷标
记,是否点击右键),它们所属的类设定这样的一个事件:在被展开
时,检查周围的雷数是否与周围标示出来的雷数相等,如果相等
则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,
就这样递归下去,一直蔓延到不可展开的雷区。
扫雷游戏的目标是尽快找到雷区中的所有地雷,而不许踩到
地雷。如果挖开的是地雷,您将输掉游戏。
玩者进入游戏后,开始游戏,目的是为了找出所有隐藏的小
方格后一定数目地雷,进行标记,把所有地雷找出并用时最少的
胜利者进出扫雷英雄榜。单击游戏菜单可以选择<初级>,<高级>,
<中级>和<扫雷英雄榜>。扫雷的各个级别是根据游戏的总格子数
和地雷总数来区别的,初级的总格子数最少,地雷数也最少,高
级的总格子数和地雷数最多。扫雷英雄榜中记录着各个级别的第
一名玩家,而且玩家可以刷新纪录。游戏上方可以显示这盘中还
有多少颗地雷,还可以显示在这盘游戏中游戏进行了多长时间。
选择级别后游戏去会出现相应的扫雷区域,这是玩家用鼠标
7