ImageVerifierCode 换一换
格式:DOC , 页数:28 ,大小:416.34KB ,
资源ID:4916900      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4916900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(扫雷游戏-课程设计报告.doc)为本站会员(cjc2202537)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

扫雷游戏-课程设计报告.doc

1、JAVA 课 程 设 计题目: 扫 雷 游 戏 院(系) 计算机信息工程学院 专 业 网络工程 班 级 13 级网络工程 1班 学生姓名 方琴 刘莉虹 程子卿 薛中意 设计时间 2015 年 8月 指导教师 万中英 提交日期 2015 年 10月 8日 摘要扫雷是一款大众类的益智小游戏。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。先任意点开少量的方格,没有爆炸时,会出现一个数字,这个数字代表的意思是以它为中心的 9 个格子内所有雷的个数。一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里插旗,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区

2、,等打开所有非雷区,你就赢了。采用 GUI 界面设计,窗口定位,绘图机制,鼠标监听等 Java技术。用户可以自己选择地雷的数量,地雷随机分布在 17*24 的方块矩阵中,地雷数量越多,难度越大。鼠标放在方格上,单击鼠标左键开始游戏,按空格键插旗。如果插旗错误,或是点击到了地雷,则游戏失败。1 引言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 系统存在的问题,进一步要做的工作

3、4.3 课程设计心得体会5 附录(程序代码)1.1 该设计的目的及意义1. 利 用 扫 雷 游 戏 巩 固 和 Java 语 言 程 序 设 计 这 一 课 程 的 基 本 知 识 的 理解 和 掌 握 ;2. 掌 握 Java 语 言 程 序 设 计 中 编 程 和 程 序 调 试 的 基 本 技 能 ;3. 基 本 掌 握 完 全 面 向 对 象 程 序 设 计 的 基 本 思 路 和 方 法 ;4. 利 用 Java 语 言 程 序 设 计 学 会 基 本 的 软 件 设 计 ;5. 掌 握 书 写 程 序 设 计 说 明 文 档 的 能 力 。1.2 课 程 设 计 要 求1. 分 析

4、 课 程 设 计 题 目 的 思 路 及 要 求 ;2. 编 写 程 序 代 码 , 调 试 程 序 使 其 能 正 确 运 行 ;3. 设 计 完 成 的 软 件 要 便 于 操 作 和 使 用 , 有 整 齐 、 美 观 的 使 用 界 面 ;4. 能 实 现 简 单 的 扫 雷 游 戏 ;1.3 相 关 技 术1. GUI 界 面 设 计 ;2. 窗 口 定 位 ;3. 绘 画 基 础 ;4. 事 件 监 听 ;5. 继 承 , 以 及 接 口 技 术 ;2.1 功能设计IndexPanel 类成员变量变量意义 变量类型 名称 long serialVersionUID 增加雷按钮值 b

5、oolean buAdd 减少雷按钮值 boolean buDec 玩游戏按钮值 boolean buPlay 成员方法方法名称 功能 备注 IndexPanel 初始化参数 构造方法 paint 绘出游戏界面 mousePressed 实现鼠标单击事件 接口方法 mouseReleased 实现鼠标释放事件 接口方法 该类实现游戏的开始界面,继承了 JPanel 同时实现了监听MouseListener (鼠标监听)事件。主要用于选定炸弹的数目,即游戏的难易程度,点击 play 按钮 则开始游戏。炸弹数量默认为 60。public void paint(Graphics g) 采用画笔的方式

6、设计界面,布局清晰,实现窗口的定位。例如:/ 画 设置炸弹数目的小球 (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

7、.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 ch

8、eck 插旗错误点的坐标 int check_x,check_y 判断是否点击过 Int clicked 判断是否已经清除过 Int clearFlag 成员方法方法名称 功能 备注 MyPanel 初始 bombCount 变量 构造方法 paint 绘出雷区,初始化雷区,及定义雷区功能,包括插旗、判断输赢等 系统核心部分,使用了窗口定位,绘画等技术 mousePressed 实现鼠标点击事件,挖开方块 接口方法 clear 清除点击处周围安全非提示方块 keyPressed 实现键盘事件,插旗 接口方法 该 类 是 游 戏 界 面 , 也 是 最 核 心 的 类 。 不 仅 继 承 了 J

9、Panel 类 , 也 通过 鼠 标 和 键 盘 的 监 听 事 件 , 实 现 扫 雷 游 戏 。 之 前 选 择 的 炸 弹 随 机 分 布 在24*17 个 小 方 格 内 。插 旗 提 示 : 鼠标放在方格上,按空格键插旗。public void paint(Graphics g) /采用画布的方式添加方格super.paint(g);if(replay = 1)for (int i = 0; i = 30 if (j - 1 = 0) if (i + 1 = 0)if (i + 1 = 0) if (counti * 17 + j != 0 if (check = 0) g.setC

10、olor(Color.blue);/ System.out.println(check_x*17+check_y);clickedcheck_x * 17 + check_y = 1;g.drawLine(check_x * 22 + 4, check_y * 22 + 4, check_x * 22 + 20,check_y * 22 + 20);g.drawLine(check_x * 22 + 20, check_y * 22 + 4, check_x * 22 + 4,check_y * 22 + 20);gameOver = 1;for(int i=0;i 420 if (count

11、(i - 1) * 17 + (j - 1) = 0if (j - 1 = 0) clickedi * 17 + (j - 1) = 1;if (counti * 17 + (j - 1) = 0if (i + 1 = 0) clicked(i + 1) * 17 + (j - 1) = 1;if (count(i + 1) * 17 + (j - 1) = 0if (i + 1 = 0) if (count(i - 1) * 17 + j = 0public void keyPressed(KeyEvent e) replay = 0;if (gameOver = 0) if (e.getK

12、eyCode() = 32) Point point = MouseInfo.getPointerInfo().getLocation();int location_x = point.x-300;int location_y = point.y-100;check = 0; / 判断插旗是否正确for (int i = 0; i = location_x - 8)win +;clickedbomb_xi * 17 + bomb_yi = 1;check = 1; / 正确插旗elsewin-;hadFlagi = 0;clickedbomb_xi * 17 + bomb_yi = 0;che

13、ck = 1; / 正确插旗if(win = bombCount)gameWin = 1;if (check = 0) check_x = (location_x - 8) / 22;check_y = (location_y - 32) / 22;repaint();public void keyReleased(KeyEvent arg0) public void keyTyped(KeyEvent arg0) IndexPanel.javapackage saolei;import java.awt.BasicStroke;import java.awt.Color;import jav

14、a.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.ImageIcon;import javax.swing.JPanel;public class IndexPanel extends JPanel implements MouseListener private static final long s

15、erialVersionUID = 1L;boolean buAdd = true; / 增加按钮,按下该值就为 falseboolean buDec = true; / 减少按钮,按下该值就为 falseboolean buPlay = true; / 玩游戏按钮,按下该值就为 falsepublic IndexPanel() this.setBackground(new Color(150, 230, 250); / 设置背景颜色public void paint(Graphics g) super.paint(g);Graphics2D g2D = (Graphics2D) g;g2D.

16、setStroke(new BasicStroke(3f);/ 显示炸弹数目g.setFont(new Font(“, Font.BOLD, 25);g.setColor(Color.white);g.drawString(“炸弹数量:“ + MyPanel.bombCount, 20, 50);g.setFont(new Font(“, Font.BOLD, 15);/ 画增加按钮g.draw3DRect(30, 70, 50, 30, buAdd);g.drawString(“增加“, 40, 92);/ 画减少按钮g.draw3DRect(100, 70, 50, 30, buDec);

17、g.drawString(“减少“, 110, 92);/ 画设置炸弹数目的小球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);g.setColor(Color.white);g.fillOval(110, 120, 30, 30);g.setColor(Color.gray);g.drawOval(110, 120, 30, 30);g.drawString(“60“, 117,

18、142);g.setColor(Color.white);g.fillOval(40, 170, 30, 30);g.setColor(Color.gray);g.drawOval(40, 170, 30, 30);g.drawString(“65“, 47, 192);g.setColor(Color.white);g.fillOval(110, 170, 30, 30);g.setColor(Color.gray);g.drawOval(110, 170, 30, 30);g.drawString(“70“, 117, 192);g.setColor(Color.white);g.fill

19、Oval(40, 220, 30, 30);g.setColor(Color.gray);g.drawOval(40, 220, 30, 30);g.drawString(“75“, 47, 242);g.setColor(Color.white);g.fillOval(110, 220, 30, 30);g.setColor(Color.gray);g.drawOval(110, 220, 30, 30);g.drawString(“80“, 117, 242);g.setColor(Color.white);g.fillOval(40, 270, 30, 30);g.setColor(Co

20、lor.gray);g.drawOval(40, 270, 30, 30);g.drawString(“85“, 47, 292);g.setColor(Color.white);g.fillOval(110, 270, 30, 30);g.setColor(Color.gray);g.drawOval(110, 270, 30, 30);g.drawString(“90“, 117, 292);/ 画 PLAY 按钮g.setColor(Color.white);g.draw3DRect(30, 320, 120, 30, buPlay);g.drawString(“PLAY“, 70, 3

21、40);ImageIcon icon = new ImageIcon(“Image/rightImage.png“);Image rightImage = icon.getImage();Image top = new ImageIcon(“Image/top.png“).getImage();Image hudie = new ImageIcon(“Image/hudie.png“).getImage();g.drawImage(top, 380, 320, 80, 80, null);g.drawImage(hudie, 300, 80, 150, 120, null);g.drawImage(rightImage, 250, 50, 200, 300, null);public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) if (e.getX() = 30 this.setVisible(false);Index.panel2.setVisible(true);repaint();

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报