您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Java_扫雷游戏_课程设计
Java课程设计题目:扫雷游戏系别信息与计算科学专业班级信息与计算科学091班学生姓名余启张昱宋加望指导教师贺慧琳提交日期2012年5月25日信息与计算科学专业课程设计目录一、设计目的(一级标题,用黑体小三)............................................................................3二、设计要求和设计指标........................................................................................................3三、设计内容............................................................................................................................33.1总体设计..............................................................................................................33.2MineGame类.........................................................................................................43.3MineArea..............................................................................................................53.4Block类…………………………………………………………………………………………………………………………………………………73.5BlockView类………………………………………………………………………………………………………………………………………73.6LayMines类…………………………………………………………………………………………………………………………………………93.7Record类………………………………………………………………………………………………………………………………………………93.8ShowRecord类……………………………………………………………………………………………………………………………………103.9userDefine类…………………………………………………………………………………………………………………………………113.10voiceShow类……………………………………………………………………………………………………………………………………..133.11ruleShow类……………………………………………………………………………………………………………………………………….143.12authorShow类………………………………………………………………………………………………………………………………….163.13所需图像……………………………………………………………………………………………………………………………………………….173.14所需音频……………………………………………………………………………………………………………………………………………173.15整体效果……………………………………………………………………………………………………………………………………………17四、本设计改进和建议..........................................................................................................20五、总结(感想和心得等)..................................................................................................20六、主要参考文献..................................................................................................................20附录..........................................................................................................................................20信息与计算科学专业课程设计一、设计目的通过选择《Java课程设计(第二版)》中扫雷游戏,这个综合性的题目作为本次的课程设计。可以让我们更加熟悉Java程序设计这门课程,学会熟练使用Jcreator这个软件,加深对Java语言的掌握,提高编程水平。同时培养独立思考和同学间团结合作的能力,为毕业设计以及将来的工作打下坚实的基础。二、设计要求和设计指标参考Windows2000/XP系统提供的扫雷游戏,改进扫雷游戏程序,增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。三、设计内容3.1总体设计在设计扫雷游戏时,需要编写个Java源文件:MineGame.java、MineArea.java、Block.java、BlockView.java、LayMines.Java、Record.java、ShowRecord.java、voiceShow.java、userDefine.java、autherShow.java、ruleShow扫雷游戏除了需要编写上述java源文件所给出的类外,还需要Java系统提供的一些重要的类,如File、JButton、和Jlabel等类。扫雷游戏所用到的一些重要的类以及之间的组合关系如图1所示:图1类之间的组合关系43.2MineGame类3.2.1.效果图(如下图2)图2MineGame创建的窗口3.2.2UML类图MineGame类是javax.swing包中Jframe的一个子类,并实现了ActionListener接中,标明该类的主要成员变量和方法的UML图如图3所示图3MineGame类的UML图5以下是UML图中有关数据和方法的详细说明。1)成员变量·bar和fileMenu提供菜单操作,单击游戏菜单中的选项为“初级”“中级”“高级”“自定义”“扫雷英雄榜”“背景声音”“退出”“游戏规则”“制作人”等·MineArea是扫雷区域,提供有关扫雷的主要功能。·“英雄榜”负责存放三个级别的扫雷最好成绩。·showheroRecord负责显示英雄榜中的数据·userdefine负责用户自定义功能·VoiceShow负责背景音乐功能·ruleshow负责显示游戏规则功能·authorshow负责显示作者功能2)·MineGame()是橘色造方法,负责完成窗口的主要功能·actionPerformed(ActionEvent)方法是MineGame类实现的ActionListerer接口中的方法,该方法负责执行菜单发出的有关命令。用户选择菜单项可以触发ActionEvent事件,导致actionPerformed(ActionEvent)方法执行相应的操作,例如将mineAreaw创建的雷区设置为初级中级高级等·Main(String[])方法是程序的入口方法3.2.3代码(见附录1)3.3MineArea3.3.1效果图:(见下图4)图4MineArea创建的扫雷区域效果图63.3.2UML图MineArea类是javax.swing包中JPanel容器的子类,实现了ActionListener和MouserListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成员变量、方法以及和MineGame类之间组合关系的UML图如图5:图5MineGame类之间组合关系的UML图以下是UML图中有关数据和方法的详细说明。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)方法负责执行有关算法,例如,当用鼠标左键单击方块上的按钮后,若该方块下有雷,actionPerformed(ActionEvent)方法将使用户输掉本局,若该方块下又雷,actionPerformed(ActionEvent)方法将显示BlockView对象中的标签,该标签上是一个数字,该数字代表当前方块的周围的8个方块中总共有多少颗雷·show()方法是一个递归方法。actionPerformed(ActionEvent)方法执行时将调用show方法进行扫雷。·mousePress(MouseEvent)方法是MineArea类实现的MouseListener接口中的方法,当7用户按下鼠标右键时,mousePress(MouseEvent)方法负责让方块上显示一个探雷标记。·inquireWin()方法用来判断用户是否扫雷成功,如果成功该方法负责让record对话框可见。所谓扫雷成功是指不仅找到了全部的雷而且用时最少。3.3.3代码(见附录2)3.4Block类3.4.1.效果图Block对象负责封装雷区中方块中的数据以及对这些数据的操作,外观效果由Blockview负责提供(见后面的BlockView)。3.4.2.UML图Block类创建的对象是数组block的单元的对象。Block型数组block是MineArea类的重要成员之一。标明Block类的主要成员变量和方法以及和MineArea类之间的组合关系的UML图如下图6:图6Block类的UML图以下是UML图中有关数据的方法的详细说明。1)成员变量·name是方块上的名字。·aroundMineNumber是方块周围雷的数目。·mineIcon是方块上雷的图标。·sMine用来表示方块是否是雷。·isMark用来表示方块是否被标记。·isOpen用来表示方块是否被挖开。2)方法·setAroundMineNumber(int)方法用来设置aroundMineNumber的值。·getAroundMineNumber()方法用来获取aroundMineNumber的值。3.4.3代码(见附录3)3.5BlockView类3.5.1.效果图BlockView创建的对象负责为Block对象提供视图,以便用户通过该视图与Block对象交互。BlockView对象使用一个标签和按钮为Block
本文标题:Java_扫雷游戏_课程设计
链接地址:https://www.777doc.com/doc-5835260 .html