Java扫雷游戏课程设计实训报告

上传人:飞*** 文档编号:31386975 上传时间:2018-02-07 格式:DOC 页数:23 大小:305.50KB
返回 下载 相关 举报
Java扫雷游戏课程设计实训报告_第1页
第1页 / 共23页
Java扫雷游戏课程设计实训报告_第2页
第2页 / 共23页
Java扫雷游戏课程设计实训报告_第3页
第3页 / 共23页
Java扫雷游戏课程设计实训报告_第4页
第4页 / 共23页
Java扫雷游戏课程设计实训报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Java扫雷游戏课程设计实训报告》由会员分享,可在线阅读,更多相关《Java扫雷游戏课程设计实训报告(23页珍藏版)》请在金锄头文库上搜索。

1、Java 应用技术实训报告题 目 起讫日期 所在院系 学生姓名 专 业 班 级 学 号 指导教师 职称 所在单位 年 月 日- 1 -一总体设计本系统共包括 3个 java源文件和 4个图像文件。1类之间的关系如图 1.1所示。M a i n 类M a i n B o m b 类 B o m b 类图 1 . 1 类之的关系2java 源文件及其功能如表 1所示。3.图像文件Bomb.gif:地雷方块上的图标。question.gif:疑惑探雷是否正确。bomb_big.gif:触雷时方块上的图标。flag.gif:探雷标记。表 1 源文件及其功能序号 文件名 主要功能1 Main.java

2、生成的类负责创建程序窗口,含有 main方法,游戏从该类开始执行。2 MainBomb.java 为主类创建整个挖雷游戏的对象,包括窗口,布雷,判断等等。3 Bomb.java 负责创建游戏所需要的按钮。- 2 -二、详细设计1主类 Main(1)成员变量(见表 2)表 2 成员变量描述 变量类型 备注游戏运行 MainBomb 临时变量(2)成员变量(见表 3)表 3 名称 功能 备注main 游戏开始(3)源代码见文件 Main.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*;/*主类*/public

3、 class Mainpublic static void main(String args)(new MainBomb().show();- 3 -2挖雷游戏 MainBomb(1)成员变量(见表 4)表 4成员变量描述 变量类型 名称雷数设置 JTextField text当前方块数 int BlockNum当前雷数 int BombNum开始 JButton start踩雷 Icon icon_bomb踩雷标记 Icon icon_bomb_big雷标记 Icon icon_flag疑惑是否有雷 Icon icon_question目录面板 Panel MenuPamel主面板 Pane

4、l mainPanel雷 Bomb bombButton该方块是否有雷 boolean 周围无雷方块周围的雷数 int 周围的雷数方块上的雷标记 int 探雷标记显示方块信息 JLabel Label方块在雷区的位置 Point P布雷 RandomSet set判断标记是否正确 Determine Determine是否获得胜利 Winner Win雷标数目 int count周围方块的雷数 int count1- 4 -(2)方法见(表 5)表 5 方法名 功能 备注Game 创建程序窗口 barnewGame 新开局actionPerformed 处理 ActionEvent事件 接口方

5、法设置方块是否有雷 设置雷的值设置是雷时的图标 设置 label上的图标设置无雷时的图标 设置 label上的图标设置有雷时的名字 设置 label上的文字设置周围的雷数 设置周围的雷数获取名字 返回方块 label上的文字获取周围雷数 返回周围的雷数设置雷区位置 设置属性 P获取雷区位置 返回属性 P获取探雷标记 返回探雷标记mousePressed 处理鼠标按下事件 接口方法mouseClicked 处理鼠标双击事件 接口方法mouseReleased 处理鼠标释放事件 接口方法mouseExited 处理鼠标退出事件 接口方法mouseEntered 处理鼠标进入事件 接口方法Mines

6、Square 创建雷区gameOver 游戏失败判断雷标是否正确 正确返回 true错误返回 false布雷 随机布雷判断是否成功 成功返回 true失败返回 false(3)源代码见文件 MainBomb.java- 5 -import java.awt.*; import java.awt.event.*; import javax.swing.*;/*窗口及算法实现类*/class MainBomb extends JFrame implements ActionListener,MouseListener public JTextField text;public Label nowB

7、omb,setBomb;public int BlockNum,BombNum; /当前方块数当前雷数public Icon icon_bomb = new ImageIcon(Bomb.gif); /踩雷public Icon icon_bomb_big = new ImageIcon(bomb_big.gif); /踩雷标记public Icon icon_flag = new ImageIcon(flag.gif); /雷标记public Icon icon_question = new ImageIcon(question.gif); /疑惑是否有雷public JButton sta

8、rt = new JButton( 开始 ); public Panel MenuPamel = new Panel(); public Panel mainPanel = new Panel(); public Bomb bombButton;- 6 -/*界面设计*/public MainBomb() super(成型 04-2 李超 JAVA 课程设计 );BlockNum = 64; BombNum = 10; Container c=getContentPane();c.setBackground(Color.gray); c.setLayout(new BorderLayout()

9、; text=new JTextField(10 ,3);nowBomb = new Label(当前雷数+ +BombNum+);setBomb= new Label(设置地雷数);start.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) BombNum = Integer.parseInt(text.getText().trim();if(BombNum = 10 & BombNum = 0) & (j - 1 = 0) if (bombButtoni - 1j - 1.i

10、sBomb = true) count += 1; /检测左上方空格是否是地雷- 11 -if ( (i - 1 = 0) if (bombButtoni - 1 j .isBomb = true) count += 1; /检测上方空格是否为地雷if ( (i - 1 = 0) & (j + 1 = 0) if (bombButton i j - 1 .isBomb = true) count += 1; /检测左边是否为地雷if ( (i = 0) & (j + 1 = 0) & (i + 1 = 0) & (j - 1 = 0) /检测左上方空格是否是空- 13 -if (bombBut

11、toni - 1j - 1.isBomb = false & bombButtoni - 1j - 1.isClicked = false & bombButtoni - 1j - 1.isRight = false) bombButtoni-1j-1.setText(bombButtoni-1j-1.BombRoundCount)+);bombButtoni - 1j - 1.setEnabled(false);bombButtoni - 1j - 1.isClicked=true;if ( (i - 1 = 0) /检测上方空格是否为空if (bombButtoni-1 j.isBomb

12、= false & bombButtoni - 1 j .isClicked = false & bombButtoni - 1 j .isRight = false) bombButtoni-1 j.setText(bombButtoni- 1 j .BombRoundCount)+);bombButtoni - 1 j .setEnabled(false);bombButtoni - 1 j .isClicked=true;if ( (i - 1 = 0) & (j + 1 = 0) /检测左边是否为空if (bombButton i j - 1.isBomb = false & bomb

13、Button i j - 1.isClicked = false & bombButton i j - 1.isRight = false) bombButton i j - 1.setText(bombButton i j - 1.BombRoundCount)+);bombButton i j - 1.setEnabled(false);bombButton i j - 1.isClicked=true; if ( (i = 0) & (j + 1 = 0) & (i + 1 = 0) & (j - 1 = 0)/检测左上isNull(bombButton,bombButtoni - 1j

14、 - 1);if ( (i - 1 = 0)isNull( bombButton,bombButtoni - 1 j );/检测上方if ( (i - 1 = 0) & (j + 1 = 0)isNull(bombButton,bombButtonij - 1);/检测左边if ( (i = 0) & (j + 1 = 0) & (i + 1 0 & bombSource.isRight = false )bombSource.setIcon(icon_flag);bombSource.isRight = true;BombNum-;isWin();nowBomb.setText(当前雷数+ +BombNum+); else if(bombSource.BombFlag = 2) if( (BombNum!=0 ) |(BombNum=0 &(bombSource.getIcon()=icon_flag) )BombNum+; bombSource.setIcon(icon_question);nowBomb.setText(当前雷数+ +BombNum+); else if(bo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号