扫雷游戏实验报告及java源代码毕业论文

扫雷游戏实验报告及java源代码毕业论文

ID:5408212

大小:557.97 KB

页数:53页

时间:2017-12-10

扫雷游戏实验报告及java源代码毕业论文_第1页
扫雷游戏实验报告及java源代码毕业论文_第2页
扫雷游戏实验报告及java源代码毕业论文_第3页
扫雷游戏实验报告及java源代码毕业论文_第4页
扫雷游戏实验报告及java源代码毕业论文_第5页
资源描述:

《扫雷游戏实验报告及java源代码毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、扫雷游戏实验报告及JAVA源代码毕业论文目录一系统开发平台3二设计要求32.1问题描述32.2输入要求32.3输出要求4三数据结构与算法描述43.1整体思路43.2所需数据结构及算法5四测试结果64.1测试输入及输出64.2测试中的问题及解决12五分析与讨论125.1测试结果分析125.2算法复杂性分析135.3探讨及改进13六附录(源代码)146.1classStart146.2classWindow146.3classPlay206.4classLattice406.5classJCounter426.6classTimeCounterThread466.7classMyDialo

2、g47一系统开发平台题目:扫雷游戏开发语言:JAVA开发工具:Eclipse操作系统:MicrosoftWindows7二设计要求2.1问题描述实现一个M*N的扫雷游戏。2.2输入要求2.1.1左键单击:在判断出不是雷的方块上按下左键,可以打开该方块。如果方块上出现数字,则该数字表示其周围3×3区域中的地雷数(一般为8个格子,对于边块为5个格子,对于角块为3个格子。所以扫雷中最大的数字为8);如果方块上为空(相当于0),则可以递归地打开与空相邻的方块;如果不幸触雷,则游戏结束。2.1.2右键单击:在判断为地雷的方块上按下右键,可以标记地雷(显示为小红旗)。重复两次操作可取消标记。2.1

3、.3双击:同时按下左键和右键完成双击。当双击位置周围已标记雷数等于该位置数字时操作有效,相当于对该数字周围未打开的方块均进行一次左键单击操作。地雷未标记完全时使用双击无效。若数字周围有标错的地雷,则游戏结束。一二2.12.22.3输出要求以图形界面的形式输出游戏数据,如下图:一数据结构与算法描述1.1整体思路一1.11.2所需数据结构及算法一二三3.13.23.2.1数据结构记录类区的各个属性用到了二维数组3.2.2算法点击到空白格子时递归的打开周围的八个格子用到了递归算法:一测试结果1.1测试输入及输出1.1.1初级游戏一1.11.1.11.1.2中级游戏一二三四4.14.1.14.

4、1.24.1.3高级游戏一二三四4.14.1.14.1.24.1.34.1.4自定义游戏对话框一二三四4.14.1.14.1.24.1.34.1.44.1.5自定义游戏及游戏结束一二三四4.14.1.14.1.24.1.34.1.44.1.54.1.6游戏胜利1.1.1帮助1.1.2关于1.1测试中的问题及解决问题1:测试过程中,发现地雷实际显示的位置和它应该显示的位置不同,正好沿着左上右下斜对角线对称;解决:由于坐标(i,j)表示i行j列,i对应到屏幕上坐标为Y轴,j对应到屏幕上坐标为X轴,所以造成了地雷实际显示的位置和它应该显示的位置不同,发现这个问题后,将paint中的i,j对调

5、一下便得到了正确结果。问题2:由于线程中的stop()方法已不建议使用,为了终止计时器线程,我设定了一个标记booleanflag,用来控制线程的结束,flag=true时,计时器线程不断+1,flag=false时,计时器线程终止。测试过程中,发现游戏开始后点击开始按钮,计时器总会显示为1而不是0;解决:由于对线程理解不足,产生生这个问题的原因目前还不清楚,不过经过上网查询后得到了解决办法。由于计时器线程运行时使用了sleep方法,线程处于阻塞状态,因此利用interrupt方法来中断线程,解决了这个问题。一分析与讨论1.1测试结果分析由于题目的特殊性,没有测试数据,具体的测试结果参

6、见4.1测试输入及输出。分析:多次测试结果显示程序运行正常,无异常。一二三四五5.15.1.11.1算法复杂性分析由于点击到空白格子时递归的打开周围的八个格子用到了递归算法;算法复杂性:检查1层格子最多检查9个格子;检查2层格子最多检查25个格子;检查3层格子最多检查49个格子;检查4层格子最多检查81个格子;检查5层格子最多检查121个格子;……;检查N层格子最多检查(2N+1)²个格子;实际算法复杂性:O(N²)1.2探讨及改进1.2.1主要算法采用了递归的方法,虽清晰易懂,但效率不高,可以改为非递归的采用队列实现的算法,这样算法的效率有明显的提高。1.2.2扫雷区域内显示的数字是

7、即时画上去的,可以采用图片填充的方法,这样子界面更加美观,且容易更改界面外观。一附录(源代码)1.1classStartpackagesaolei;/***@authorJSM开始游戏*/publicclassStart{publicstaticvoidmain(String[]args){newWindow();}}一二三四五六6.16.2classWindowpackagesaolei;importjavax.swing.*;importj

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。