资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java 应用技术实训报告题 目 起讫日期 所在院系 学生姓名 专 业 班 级 学 号 指导教师 职称 所在单位 年 月 日一总体设计本系统共包括 3 个 java 源文件和 4 个图像文件。1类之间的关系如图 1.1 所示。Main类MainBomb类Bomb类图1.1 类之的关系2java 源文件及其功能如表 1 所示。3.图像文件Bomb.gif:地雷方块上的图标。question.gif:疑惑探雷是否正确。bomb_big.gif:触雷时方块上的图标。flag.gif:探雷标记。表 1 源文件及其功能序号文件名主要功能1Main.java生成的类负责创建程序窗口,含有 main 方法,游戏从该 类开始执行。2MainBomb.java为主类创建整个挖雷游戏的对象,包括窗口,布雷,判 断等等。3Bomb.java负责创建游戏所需要的按钮。二、详细设计1 1主类主类 MainMain(1)成员变量)成员变量(见表见表 2)表 2 成员变量描述成员变量描述变量类型变量类型备注备注游戏运行MainBomb临时变量(2)成员变量)成员变量(见表见表 3)表 3 名称名称功能功能备注备注main游戏开始(3 3)源代码见文件)源代码见文件 Main.javaMain.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*;/*主类*/public class Main public static void main(String args)(new MainBomb().show(); 2 2挖雷游戏挖雷游戏 MainBombMainBomb(1 1)成员变量)成员变量( (见表见表 4)4) 表 4成员变量描述变量类型名称雷数设置JTextFieldtext当前方块数intBlockNum当前雷数intBombNum开始JButtonstart踩雷Iconicon_bomb踩雷标记Iconicon_bomb_big雷标记Iconicon_flag疑惑是否有雷Iconicon_question目录面板PanelMenuPamel主面板PanelmainPanel雷BombbombButton该方块是否有雷boolean周围无雷方块周围的雷数int周围的雷数方块上的雷标记int探雷标记显示方块信息JLabelLabel方块在雷区的位置PointP布雷RandomSetset判断标记是否正确DetermineDetermine是否获得胜利WinnerWin雷标数目intcount周围方块的雷数intcount1(2 2)方法见)方法见( (表表 5)5) 表 5 方法名功能备注Game创建程序窗口barnewGame新开局actionPerformed处理 ActionEvent 事件接口方法设置方块是否有雷设置雷的值设置是雷时的图标设置 label 上的图标设置无雷时的图标设置 label 上的图标设置有雷时的名字设置 label 上的文字设置周围的雷数设置周围的雷数获取名字返回方块 label 上的文字获取周围雷数返回周围的雷数设置雷区位置设置属性 P获取雷区位置返回属性 P获取探雷标记返回探雷标记mousePressed处理鼠标按下事件接口方法mouseClicked处理鼠标双击事件接口方法mouseReleased处理鼠标释放事件接口方法mouseExited处理鼠标退出事件接口方法mouseEntered处理鼠标进入事件接口方法MinesSquare创建雷区gameOver游戏失败判断雷标是否正确正确返回 true 错误返回 false布雷随机布雷判断是否成功成功返回 true 失败返回 false(3 3)源代码见文件)源代码见文件 MainBomb.javaMainBomb.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*;/*窗口及算法实现类*/class MainBomb extends JFrame implements ActionListener,MouseListener public JTextField text;public Label nowBomb,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 start = new JButton(“ 开始 “); public Panel MenuPamel = new Panel(); public Panel mainPanel = new Panel(); public Bomb bombButton;/*界面设计*/public MainBomb() super(“成型 04-2 李超 JAVA 课程设计 “);BlockNum = 64; BombNum = 10; Container c=getContentPane();c.setBackground(Color.gray); c.setLayout(new BorderLayout(); 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 /检测左上方空格是否是地雷if ( (i - 1 = 0) if (bombButtoni - 1 j .isBomb = true) count += 1; /检测上方空格是否为地雷if ( (i - 1 = 0) /检测左边是否为地雷if ( (i = 0) bombButtoni - 1j - 1.setEnabled(false);bombButtoni - 1j - 1.isClicked=true;if ( (i - 1 = 0) /检测上方空格是否为空if (bombButtoni-1 j.isBomb = false bombButtoni - 1 j .setEnabled(false);bombButtoni - 1 j .isClicked=true;if ( (i - 1 = 0) bombButton i j - 1.setEnabled(false);bombButton i j - 1.isClicked=true; if ( (i = 0) if ( (i - 1 = 0)isNull( bombButton,bombButtoni - 1 j );/检测上方if ( (i - 1 = 0) /检测左边if ( (i = 0) bombSource.isRight = true;BombNum-;isWin();nowBomb.setText(“当前雷数“+“ “+BombNum+“); else if(bombSource.BombFlag = 2) if( (BombNum!=0 ) |(BombNum=0 bombSource.setIcon(icon_question);nowBomb.setText(“当前雷数“+“ “+BombNum+“); else if(bombSource.BombFlag = 0) bombSource.setIcon(null);bombSource.isRight = false; public void mouseEntered(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseExited(MouseEvent e) public void mousePressed(MouseEvent e) 3 3按钮按钮 BombBomb(1 1)成员变量)成员变量( (见表见表 6)6) 表 6成员变量描述变量类型名称第几号方块intnum_x,num_y是否点击右键booleanisRight是否被点击booleanisClicked(2 2)源代码见文件)源代码见文件 Bomb.javaBomb.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*;/*按扭类*/class Bomb extends JButton public int num_x,num_y; /第几号方块 public int BombRoundCount; /周围雷数 public boolean isBomb; /是否为雷 public boolean isClicked; /是否被点击 public int BombFlag; /探雷标记public boolean isRight; /是否点击右键public Bomb(int x,int y) BombFlag = 0; num_x = x;num_y = y; BombRoundCount = 0; isBomb = false; isClicked = false;isRight = false;三运行效果点击开始运行游戏,即可点选方格、根据方格数字推断雷的位置。 如下图 1-3。图 1图 2图 3四工作总结通过此次课程设计,将我所学的 JAVA 知识得到巩固和应用,在设 计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思 考下还是很好的完成了。 这此课程设计不仅让我懂得了写程序不能闭门造车,要努力拓宽知 识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资 料。不过与其临渊羡鱼,不如退而结网。这次 JAVA 课程设计给我的最 大的收获就是如果让自己有了兴趣,那么任何困难在你的勇气和毅力下 都算不得什么。完成了课程设计只是一小步,未来的日子还要继续努
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号