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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

扫雷游戏课程设计报告文档格式.docx

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

2、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

3、, 30, buPlay);PLAY, 70, 340);publicvoid mousePressed(MouseEvent e) ;鼠标点击事件,实现炸弹的选择。MyPanel类返回后重新开始int replay 每插一旗变量加一win 判断是否赢gameWin 判断是否结束gameOver 是否有雷的标志int bombFlag 方块周围雷数count 雷坐标Int bomb_x,bomb_y 判断是否插旗hadFlag 判断插旗是否正确check 插旗错误点的坐标check_x,check_y 判断是否点击过clicked 判断是否已经清除过clearFlag MyPanel 初始bo

4、mbCount变量绘出雷区,初始化雷区,及定义雷区功能,包括插旗、判断输赢等系统核心部分,使用了窗口定位,绘画等技术实现鼠标点击事件,挖开方块clear 清除点击处周围安全非提示方块keyPressed 实现键盘事件,插旗该类是游戏界面,也是最核心的类。不仅继承了JPanel类,也通过鼠标和键盘的监听事件,实现扫雷游戏。之前选择的炸弹随机分布在24*17个小方格内。 插旗提示:鼠标放在方格上,按空格键插旗。 publicvoid paint(Graphics g) /采用画布的方式添加方格super.paint(g);if(replay = 1)for (int i = 0; i = 30 &

5、 e.getX() = 70 e.getY() 420 & 480 & 380 & 405)System.out.println(fahui);check = 1;replay = 1;win = 0;gameOver = 0;gameWin = 0;bombCount = 60;this.setVisible(false);Index.panel1.setVisible(true);elseif (e.getY() 68 & 128 & 390 & 420)A. 没有返回键 相互讨论,添加replay按钮,点击后所有数据初始化,重新开始回到选择界面。 B. 插旗相关函数 查阅相关资料,讨论,

6、最终设定 鼠标放在方格上,按空格键插旗。没有用文本或者是其他方式保存数据,每次用户结束游戏之后,数据没有保存。因此没办法实现排行榜等数据比较功能。 Java程序语言设计一种可以撰写跨平台应用软件的面向对象的程序设计语言。在这次的课程设计中不仅检验了我们所学习的知识,也学会了完成一件事情的方法和技巧。在设计过程中,和同学们相互探讨,相互学习,相互监督。学会了宽容,学会了理解,课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工 作、一个必不少的过程通过这次课程设计,明白除了日常的理论学习,还要多实践,把所学的知识运用在真正的实践上。而完成课程设计,不仅是对我们学习情况的检验

7、,也是对自己的一次考验。Index.javapackage saolei;import java.awt.CardLayout;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JFrame;public class Index public static void main(String args) JFrame frame = new JFrame();frame.setSize(546, 415 + 50);frame.setLocation(300,100);panel1 = new IndexP

8、anel();panel2 = new MyPanel();frame.add(panel1); / index界面面板frame.add(panel2); / 游戏主面板ImageIcon icon = new ImageIcon(Image/rightImage.pngImage rightImage = icon.getImage();frame.setIconImage(rightImage);frame.addMouseListener(panel1);panel1.addMouseListener(panel1);frame.addMouseListener(panel2);pan

9、el2.addMouseListener(panel2);frame.addKeyListener(panel2);panel2.addKeyListener(panel2);frame.setLayout(new CardLayout();frame.setVisible(true);MyPanel.javaimport java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Mouse

10、Info;import java.awt.Point;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JPanel;public class MyPanel extends JPanel implements MouseListener, KeyListener static int replay = 1; / 返回后从新开始int win

11、 = 0; /每插一个旗就增一int gameWin = 0;/判断游戏是否赢private static final long serialVersionUID = 1L;static int gameOver; / 判断游戏是否结束int bombFlag = new int24 * 17; / bombFlag 为是否是雷的标志,如果该空格是雷则相应的位置的bombFlag为1,默认为0int count = new int24 * 17; / count为此方块周围雷的个数static int bombCount = 120;/ 雷的坐标数组,数值为整数,不是绝对坐标,而是相对坐标in

12、t bomb_x = new intbombCount;int bomb_y = new intbombCount;int hadFlag = new intbombCount; / 判断是否有插旗int check = 1; / 判断插旗是否正确int check_x, check_y; / 插旗错误定点的相当坐标int clicked = new int24 * 17;/ 判断是否点击过int clearFlag = new int24 * 17;/ 判断是否已经clear过public MyPanel() / System.out.println(bomb_x55);public voi

13、d paint(Graphics g) / 设置画笔的宽度Graphics2D g2D = (Graphics2D) g;g2D.setStroke(new BasicStroke(3f);/ 画雷上的遮盖物 24;for (int j = 0; j = 0) & (j - 1 = 0) (bombFlag(i - 1) * 17 + (j - 1) = 1) counti * 17 + j+;if (j - 1 (bombFlagi * 17 + (j - 1) = 1) if (i + 1 = 23) & (bombFlag(i + 1) * 17 + (j - 1) = 1) (bomb

14、Flag(i + 1) * 17 + j = 1) (j + 1 = 16) (bombFlag(i + 1) * 17 + (j + 1) = 1) if (j + 1 = 16) & (bombFlagi * 17 + (j + 1) = 1) (bombFlag(i - 1) * 17 + (j + 1) = 1) (bombFlag(i - 1) * 17 + j = 1) if (counti * 17 + j != 0 & bombFlagi * 17 + j != 1) + counti * 17 + j, 22 * i + 2,22 * j + 20);if (check = 0) g.setColor(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, for(int i=0;i24;i+) for(int j=0;j

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1