扫雷游戏-课程设计报告
- 格式:doc
- 大小:272.00 KB
- 文档页数:25
J A V A课程设计题目:扫雷游戏
院(系)计算机信息工程学院
专业网络工程
班级 13级网络工程1班
学生姓名方琴刘莉虹程子卿薛中意
设计时间 2015年8月
指导教师万中英
提交日期 2015年10月8日
摘要
《扫雷》是一款大众类的益智小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。先任意点开少量的方格,没有爆炸时,会出现一个数字,这个数字代表的意思是以它为中心的9个格子内所有雷的个数。一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里插旗,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区,等打开所有非雷区,你就赢了。
采用GUI界面设计,窗口定位,绘图机制,鼠标监听等Java技术。用户可以自己选择地雷的数量,地雷随机分布在17*24的方块矩阵中,地雷数量越多,难度越大。鼠标放在方格上,单击鼠标左键开始游戏,按空格键插旗。如果插旗错误,或是点击到了地雷,则游戏失败。
1 引言
该设计的目的及意义
该设计的要求
相关技术
2 总体设计
功能设计
3 详细设计
系统界面设计
流程图
界面截图
程序描述
选择地雷数量
游戏界面
4 课程设计总结
遇到问题解决问题过程
系统存在的问题,进一步要做的工作
课程设计心得体会
5 附录(程序代码)
该设计的目的及意义
1.利用扫雷游戏巩固和Java语言程序设计这一课程的基本
知识的理解和掌握;
2.掌握Java语言程序设计中编程和程序调试的基本技能;
3.基本掌握完全面向对象程序设计的基本思路和方法;
4.利用Java语言程序设计学会基本的软件设计;
5.掌握书写程序设计说明文档的能力。
课程设计要求
1. 分析课程设计题目的思路及要求;
2. 编写程序代码,调试程序使其能正确运行;
3. 设计完成的软件要便于操作和使用,有整齐、美观的使用界面;
4. 能实现简单的扫雷游戏;
相关技术
1.GUI界面设计;
2.窗口定位;
3.绘画基础;
4.事件监听;
5.继承,以及接口技术;
功能设计
IndexPanel类
成员变量
变量意义变量类型名称
long serialVersionUID 增加雷按钮值boolean buAdd
减少雷按钮值boolean buDec
玩游戏按钮值boolean buPlay
成员方法
方法名称功能备注IndexPanel 初始化参数构造方法
paint 绘出游戏界面
mousePressed 实现鼠标单击事件接口方法mouseReleased 实现鼠标释放事件接口方法
该类实现游戏的开始界面,继承了JPanel 同时实现了监听MouseListener (鼠标监听)事件。主要用于选定炸弹的数目,即游戏的难易程度,点击 play按钮则开始游戏。炸弹数量默认为60。
public void paint(Graphics g){}
采用画笔的方式设计界面,布局清晰,实现窗口的定位。例如:
public class Index {
static IndexPanel panel1;
static MyPanel panel2;
. . .
}
该类是游戏的主类,引用了静态的IndexPanel 类以及 MyPanel 类。主要决定页面设计,窗口大小,以及添加事件。
流程图界面截图
运行程序
选择炸弹数量
点击 play按钮
开始游戏
点到雷,则游戏失败
否则成功
选择地雷数量
炸弹数量越多,难度越大。
public void mouseReleased(MouseEvent e) { if () >= 30 && () <= 80 && () >= 70
&& () <= 100) {
buAdd = true; ++;
}
if () >= 100 && () <= 150 && () >= 70
&& () <= 100) {
buDec = true; ;
}
if () >= 30 && () <= 150 && () >= 320
&& () <= 350) {
buPlay = true; (false);
}
repaint();
}
public void mousePressed (MouseEvent e) { if () >= 30 && () <= 80 && () >= 70
&& () <= 100) {
buAdd = false;
}
if () >= 100 && () <= 150 && () >= 70 && () <= 100) {
buDec = false;
}
if () >= 40 && () <= 70 && () >= 120 && () <= 150) {
= 40;
}
if () >= 30 && () <= 150 && () >= 320 && () <= 350) {
buPlay = false;
}
repaint();