魔板游戏_java课设_含可运行程序

上传人:小** 文档编号:90968396 上传时间:2019-06-20 格式:DOC 页数:21 大小:647KB
返回 下载 相关 举报
魔板游戏_java课设_含可运行程序_第1页
第1页 / 共21页
魔板游戏_java课设_含可运行程序_第2页
第2页 / 共21页
魔板游戏_java课设_含可运行程序_第3页
第3页 / 共21页
魔板游戏_java课设_含可运行程序_第4页
第4页 / 共21页
魔板游戏_java课设_含可运行程序_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《魔板游戏_java课设_含可运行程序》由会员分享,可在线阅读,更多相关《魔板游戏_java课设_含可运行程序(21页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书 NO.22魔板游戏1. 课程设计的目的本次课程设计是通过Java语言编制一个魔板游戏,它是一款经典的智力游戏。而Java语言是当今较为流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。这次课程设计,还有利于加深对Java课程的进一步了解,也可以巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法。2. 设计方案论证2.1 开发环境魔板游戏是一款益智游

2、戏,是人们休闲娱乐时可供选择的消遣工具。魔板游戏有两种形式,一种是由若干个有序不等数字组成,而另一种是由图像组成。人们在将其恢复至最原始的序列而形成完整的排列时,会充分考验玩家的智商。进而达到在娱乐中提高智商的功效。魔板游戏分为两个级别,用户可以根据自己的水平来选择“初级”或者“高级”,更具灵活性,并且更贴近用户的需求。对于“初级”级别,魔板由3*3个格子组成;对于“高级”级别,魔板由4*4个格子组成。2.2 需求分析2.2.1 设计要求(1)魔板由3*3或4*4个格子组成。对于3*3魔板,在前八个格子里随机放置8个编号18的方块,最后一个格子是未放置方块的空格子;对于4*4的魔板,在前15个

3、格子里随机放置15个编号为115的方块,最后一个格子是未放置方块的空格子。(2)用鼠标单击任何与空格子水平或垂直相邻的方块可以把该方块移入空格子,而当前方块移动之前所在的格子成为空格子。通过不断地移动方块可以将方块一行一行地按数字顺序排好。(3)魔板游戏也可以使用图像来代替数字。例如,对于3*3的魔板,将一幅图像分成3*3幅小图像,除去最后一幅小图像(图像的右下角),将其余各幅小图像打乱顺序放在魔板的方块上,最终目标是通过移动方块恢复原始图像(不包括图像的右下角)。(4)当用户按要求排列好方块后,程序弹出对话框,提示用户成功的消息。(5)魔板游戏分为两个级别,用户可以通过界面上提供的菜单来选择

4、“初级”或者“高级”两个级别。对于“初级”级别,魔板由3*3个格子组成;对于“高级”级别,魔板由4*4个格子组成。(6)“魔板游戏”提供一幅默认图像,用户可以使用该图像来玩魔板游戏。用户也可以使界面提供的菜单选择一幅新图像,然后使用这个新的图像来玩魔板游戏。2.2.2 功能分析所设计的魔板游戏需要实现以下几个功能:(1)用户以“数字”或“图像”的形式来玩魔板游戏。(2)用户可以根据个人需要来选择魔板游戏的级别:“初级”或者“高级”。2.2.3 系统功能结构在设计魔板游戏时,要编写7个Java源文件:PuzzleGame.java、PuzzlePad.java、Point.java、Block.

5、java、HandleImage.java、VerifySuccess.java和HandleMove.java。魔板游戏除了需要编写的上述7个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenuItem、JButton和JRadioButton等类。魔板游戏所用到的一些重要的类以及之间的组合关系如图1所示。PuzzleGameJMenuPuzzlePadJRadioButtonJButtonPointBlockHandleMoveImageHandleImageVerifySuccess图1 类之间的组合关系2.3 设计过程2.3.1 系统流程图系统的流程图如图2所

6、示。图2 魔板游戏系统流程图2.3.2 总体设计(1)PuzzleGame.java(主类)PuzzleGame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始执行。PuzzleGame雷的成员变量中有4种重要类型的对象:PuzzlePad、JMenu、JRadioButton和JButton。PuzzleGame类的主要成员的作用将在后面的详细设计中阐述,PuzzleGame类创建的窗口以及其中的主要成员对象如图3所示。图3 PuzzleGame窗口及主要的成员对象(2)PuzzlePad.javaPuzzlePad类创建的对象是PuzzleGame类最重要的成员之一,代表“

7、魔板”。该类的成员变量中有5种重要类型的对象:Point、Block、HandleMovee、HandleImage和Image。PuzzlePad类的主要成员的作用将在后面的详细设计中阐述。(3)Block.javaBlock类是JTextField的一个子类创建的对象是PuzzlePad类的重要成员之一,用来表示“魔板”中的“方块”。(4)Point.javaPoint类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。(5)HandleImage.javaHandleImage类所创建的对象负责将一幅图像分

8、成若干个小图像。(6)HandleMove.javaHandleMove类所创建的对象负责处理鼠标事件。(7)VerifySuccess.javaVerifySuccess类所创建的对象负责验证用户是否按要求成功排列魔板中的方块。2.3.3 详细设计(1)PuzzleGame类效果图:PuzzleGame创建的窗口效果如图4(数字玩法)、图5(图像玩法)所示。 图4 PuzzleGame创建的窗口(数字玩法) 图5 PuzzleGame创建的窗口(图像玩法)JFrameActionListenerPuzzleGamepuzzlePad:PuzzlePadbar:JMenuBargradeMen

9、u,choiceImage:JMenuoneGrade,twoGrade:JMenuItemnewImage,defaultImage:JMenuItemdigitPlay,imagePlay:JRadioButtonstartButton:JButtontool:Toolkitimage:ImagePuzzleGame():无类型actionPerformed (ActionEvent):voidmain(String):void图6 PuzzleGame类的UML图UML图:MazeWindow类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口,

10、该类的主要成员变量和方法的UML图如图6所示。以下是UML图中有关数据和方法的详细说明。 成员变量PuzzlePad是PuzzlePad类声明的对象,用来刻画魔板,是PuzzleGame类中最重要的成员之一。Bar是JMenuBar创建的菜单条,用来添加菜单。Bar被放置在窗口的顶部。gradeMenu和choiceImage是JMenu创建的菜单,其名字分别为“选择级别”和“选择图像”。gradeMenu和choiceImage被添加到菜单条中。oneGrade、twoGrade、newImage和defaultImage是JMenuItem创建的菜单项,名字依次为“初级”、“高级”、“选择

11、一幅新图像”和“使用默认图像”,oneGrade和twoGrade菜单项被添加到菜单GradeMenu中。oneGrade、twoGrade、newImage和defaultImage都将当前窗口注册为自己的ActionEvent事件监视器。digitPlay和imagePlay是JRadioButton创建的属于同一选择组中的单选框,名字依次为“数字玩法”,“图像玩法”。同一时刻,digitPlay和imagePlay中只能有一个处于选中状态。startButton是JButton创建的按钮对象,名字为“开始”。startButton将当前窗口注册为自己的ActionEvent事件监视器。i

12、mage是Image声明的对象。Tool是Toolkit对象,负责创建image对象。方法PuzzleGame()构造方法,负责完成窗口的初始化操作。actionPerformed(ActionEvent)方法是PuzzleGame类实现ActionListener接口中的方法。PuzzleGame类创建的窗口是菜单中的菜单项、单选框以及按钮上的ActionEvent事件监视器。如果用户选中oneGrade或twoGrade菜单项时actionPerformed(ActionEvent)方法所执行的操作分别让puzzlePad对象将自己的级别设置为以及或二级。如果用户选中newImage或de

13、faultImage菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是分别改变image对象。当用户单击start按钮后,如果单选框disPlay处于被选中状态,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用数字魔板,如果单选框imagePlay被选中时,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用图像魔板。(2)PuzzlePad类效果图:PuzzlePad创建的魔板对象效果如图7所示。 (a)数字魔板 (b)图像魔板图7 Pu

14、zzlePad创建的魔板对象UML图:PuzzlePad类是javax.swing包中JPanel容器的子类,所创建的对象:puzzlePad是PuzzleGame类中最重要的成员之一,作为一个容器添加到PuzzleGame窗口的中心。标明PuzzlePad类的主要成员变量、方法以及和PuzzleGame类之间组合关系的UML图如图8所示。JPanelPuzzlePadPoint:PointBlock:Block;Distance,grade,m,n:inthandleMove:HandleMovehandleImage:HandleImageverifySuccess:VerifySucce

15、ssimage:ImageisDigitPlay:Booleantool:ToolkitPuzzlePad():无类型getHangMove():HandleMovesetImage(Image):voidsetGrade(int):voidsetGrade():intneedInit():voidsetIsDigitPlay():voidsetIsImagePlay():voidpaintComponent(Graphics):voidPuzzleGamepuzzlePadPuzzlePad图8 PuzzllePad类的UML图以下是UML图中有关数据和方法的详细说明。 成员变量Point是Point类型的二维数组,其单元为Point类创建的对象,用来确定魔板中方块的位置,即确定Block对象在PuzzlePad容器中的位置。block是Block类型的二维数组,其单元为Block类创建的对象,用来表示方块。Distance,grade,m和n是int型数据。Point对

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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