扫雷游戏课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J A V A课程设计题目:扫雷游戏
院(系)计算机信息工程学院
专业网络工程
班级 13级网络工程1班
学生姓名方琴刘莉虹程子卿薛中意设计时间 2015年8月
指导教师万中英
提交日期2015年10月8日
《扫雷》是一款大众类的益智小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。先任意点开少量的方格,没有爆炸时,会出现一个数字,这个数字代表的意思是以它为中心的9个格子内所有雷的个数。一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里插旗,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区,等打开所有非雷区,你就赢了。
采用GUI界面设计,窗口定位,绘图机制,鼠标监听等Java技术。用户可以自己选择地雷的数量,地雷随机分布在17*24的方块矩阵中,地雷数量越多,难度越大。鼠标放在方格上,单击鼠标左键开始游戏,按空格键插旗。如果插旗错误,或是点击到了地雷,则游戏失败。
1.1 该设计的目的及意义
1.2 该设计的要求
1.3 相关技术
2 总体设计
2.1 功能设计
3 详细设计
3.1 系统界面设计
3.1.1 流程图
3.1.2 界面截图
3.2 程序描述
3.2.1 选择地雷数量
3.2.2 游戏界面
4 课程设计总结
4.1遇到问题解决问题过程
4.2 系统存在的问题,进一步要做的工作
4.3 课程设计心得体会
5 附录(程序代码)
1.1 该设计的目的及意义
1.利用扫雷游戏巩固和Java语言程序设计这一课程的基本知识的
理解和掌握;
2.掌握Java语言程序设计中编程和程序调试的基本技能;
3.基本掌握完全面向对象程序设计的基本思路和方法;
4.利用Java语言程序设计学会基本的软件设计;
5.掌握书写程序设计说明文档的能力。
1.2 课程设计要求
1. 分析课程设计题目的思路及要求;
2. 编写程序代码,调试程序使其能正确运行;
3. 设计完成的软件要便于操作和使用,有整齐、美观的使用界面;
4. 能实现简单的扫雷游戏;
1.3 相关技术
1.GUI界面设计;
2.窗口定位;
3.绘画基础;
4.事件监听;
5.继承,以及接口技术;
2.1 功能设计
IndexPanel类
成员变量
变量意义变量类型名称
long serialVersionUID 增加雷按钮值boolean buAdd
减少雷按钮值boolean buDec
玩游戏按钮值boolean buPlay
成员方法
方法名称功能备注
IndexPanel 初始化参数构造方法
paint 绘出游戏界面
mousePressed 实现鼠标单击事件接口方法mouseReleased 实现鼠标释放事件接口方法
该类实现游戏的开始界面,继承了JPanel 同时实现了监听MouseListener (鼠标监听)事件。主要用于选定炸弹的数目,即游戏的难易程度,点击 play
按钮则开始游戏。炸弹数量默认为60。
public void paint(Graphics g){}
采用画笔的方式设计界面,布局清晰,实现窗口的定位。
例如:// 画设置炸弹数目的小球(40)
g.setColor(Color.white); // 画笔的颜色
g.fillOval(40, 120, 30, 30); // 画的图形是实心圆
g.setColor(Color.gray); // 重新设置画笔的颜色
g.drawOval(40, 120, 30, 30); // 画的图形是空心圆 g.drawString("40", 47, 142); //图形上面的字符串
// 画PLAY按钮
g.setColor(Color.white);
g.draw3DRect(30, 320, 120, 30, buPlay);
g.drawString("PLAY", 70, 340);
public void mousePressed(MouseEvent e) { ;}
鼠标点击事件,实现炸弹的选择。
MyPanel类
成员变量
变量意义变量类型名称
返回后重新开始int replay
每插一旗变量加一int win
判断是否赢int gameWin
long serialVersionUID 判断是否结束int gameOver
是否有雷的标志int[] bombFlag
方块周围雷数int[] count
雷坐标Int[] bomb_x,bomb_y
判断是否插旗Int[] hadFlag
判断插旗是否正确int check
插旗错误点的坐标int check_x,check_y
判断是否点击过Int[] clicked
判断是否已经清除过Int[] clearFlag
成员方法
方法名称功能备注
MyPanel 初始bombCount变量构造方法
paint 绘出雷区,初始化雷区,及定义雷系统核心部分,使用了窗mousePressed 实现鼠标点击事件,挖开方块接口方法
clear 清除点击处周围安全非提示方块
keyPressed 实现键盘事件,插旗接口方法该类是游戏界面,也是最核心的类。不仅继承了JPanel类,也通
过鼠标和键盘的监听事件,实现扫雷游戏。之前选择的炸弹随机分布
在24*17个小方格内。
插旗提示:鼠标放在方格上,按空格键插旗。