大连科技学院Java课程设计报告题目扫雷小游戏学生姓名XXX专业班级软件工程12-1指导教师史原职称讲师所在单位大连科技学院教研室主任刘瑞杰完成日期2015年6月12日目录1.总体设计..............................................................................................................................11.1本系统的主要功能......................................................................................................11.2系统包含的类及类之间的关系..................................................................................12.详细设计..............................................................................................................................22.1MineGame.java(主类):.......................................................................................22.2MineArea.java:.......................................................................................................22.3Block.java:.............................................................................................................32.4BlockView.java.........................................................................................................32.5LayMines.java:.......................................................................................................32.6Record.java:...........................................................................................................42.7ShowRecord:.............................................................................................................43.运行效果............................................................................................................................53.1系统主界面.................................................................................................................53.2初级录入界面..............................................................................................................53.3中级录入界面..............................................................................................................63.4高级录入界面..............................................................................................................63.5游戏结束录入界面......................................................................................................73.6游戏英雄榜界面..........................................................................................................7参考文献....................................................................................................................................8附录1软件源程序.................................................................................................................8课程设计实践总结:..............................................................................................................25大连科技学院课程设计报告11.总体设计1.1本系统的主要功能(1)本系统用户可以自定义级别并且可以任意输入雷数;(2)具有计时功能,即显示用户完成移动盘子所花费的时间;(3)自动保存扫雷英雄榜;1.2系统包含的类及类之间的关系本系统共包括7个java源文件。如图1-1所示。图1-1类之间的关系大连科技学院课程设计报告22.详细设计2.1MineGame.java(主类):(1)成员变量bar和fileMenu提供菜单操作,单击菜单操作中的选项为“初级”,“中级”,“高级”或“扫雷英雄榜”;mineArea是扫雷区域,提供有关雷的主要功能;英雄榜”负责存放三个级别的扫雷最好成绩;showHeroRecord负责显示英雄榜中的数据(2)方法MineGame()是构造窗口,负责完成窗口的初始化。ActionPerformed(ActionEvent)方法是MineGame类实现的ActionListener接口中的方法,该方法负责执行菜单发出的有关命令。用户选择菜单中的菜单项可触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作。Main(String[])方法是程序运行的入口方法。(3)源代码见文件MineGame.java2.2MineArea.java:(1)成员变量block和Block类型的数组,用来确定雷区有多少需进行扫雷的方块;blockView是BlockView类型的数组,负责block数组中Block对象提供视图;lay是LayMines类型的对象,负责设置block数组中的哪些方块不是雷;record负责提供保存成绩的界面,是一个对话框,默认为不可见,用户只有扫雷成功后,才可以看见该对话框;reStart是一个按钮对象,用户单击它重新开始游戏;time是计时器对象,负责计算用户用时。(2)方法initMineArea(int,int,int,int)方法可根据参数提供的数据设置雷区的宽度,高度,类的数目以及雷区的级别。actionPerformed(actionEvent)是MineArea类实现的ActionListener接口中的方法。当用户单击blockView中的某个方块时actionPerformed(actionEvent)执行有关算法。Show()方法是一个递归方法,actionPerformed(actionEvent)方法执行将调用show方法进行扫雷。mousePressed(mouseEvent)方法是MineArea类实现的MouseListener接口中的方大连科技学院课程设计报告3法,当用户按下鼠标右键时,mousePressed(mouseEvent)方法负责让方块上显示一个探雷标记。inquireWin()方法用来判断用户扫雷是否成功,如果成功该方法负责让record对话框可见。(3)源代码见文件MineArea.java2.3Block.java:(1)成员变量name方块上的名字aroundMineNumber是方块周围雷的数目mineIcon是方块上雷的图标isMine用来表示方块是否是雷isMark用来表示方块是否被标记isOpen用来表示方块是否被挖开(2)方法setAroundMineNumber(int)方法用来设置aroundMineNumber的值;getAroundMineNumber()方法用来获取aroundMineNumber的值。(3)源代码见文件Block.java2.4BlockView.java(1)成员变量blockNameOrIcon用来显示Block对象的name,number和mineIcon属性;blockCover用来遮挡blockNameOrIcon;card卡片式布局。(2)方法giveView(Blockblock)方法给参数指定的Block对象提供视图;seeBlockNameOrIcon()方法让用户看见视图中的标签,无法看见按钮;seeBlockCover()方法让用户看见视图中的按钮,无法看见标签。(3)源代码见文件BlockView.java2.5LayMines.java:(1)成员变量mineIcon用来存放一个格式为gif的图像。(2)方法大连科技学院课程设计报告4layMinesForBlock(Block[][],int)方法对参数指定的Block数组进行设置,其中int参数指定雷的数目。(3)源代码见文件LayMines.java2.6Record.java:(1)成员变量textName提供用户扫雷优胜者出入姓名;用户单击“确定”按钮,可以保存成绩。(2)方法actionPerformed(ActionEvent)方法是Record类实现的ActionListener接口中的方法,当用户单击“确定”按钮后,该方法被执行,所执行的操作就是获取用户输入的名字和用时,然后调用writeRecord(String,String)方法将信息写入英雄榜中;writeRecord(String,String)负责将有关信息写入“英雄榜”文件。(3)源代码见文件Record.java2.7ShowRecord:(1)成员变量file存放文件的引用,用户单击“显示成绩”按钮,可以查看各个级别的最好成绩;用户单击“重新计分”按钮,可以将“英雄榜”中的成绩恢复为初始值。(2)方法actionPerformed(ActionEvent)方法是ShowRecord类实现的ActionListener接口中的方法,当用户单击“显示成绩”按钮后,该方法被执行,所执行的操作就是调用readAndS