java魔板游戏课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 课程设计报告
魔板游戏的设计
专业 计算机科学与技术(网络技术) 学生姓名
班
级 学号
指导教师
完成日期
2014年1月10日
目录
1设计要求 (1)
2总体设计 (2)
2.1 PuzzleGame类设计 (2)
2.2 PuzzlePad类设计 (2)
2.3 Block类设计 (3)
2.4 Point类设计 (3)
2.5 HandleImage类设计 (3)
2.7 VerifySuccess类设计 (3)
3详细设计 (3)
3.1PuzzleGame类 (3)
3.2PuzzlePad类 (5)
3.3 Block类 (7)
3.4 Point类 (8)
3.5 HandleImage类 (9)
图10 HandleImage类的UML图 (9)
3.6 HandleMove类 (9)
3.7 VerifySuccess类 (11)
5软件发布 (18)
6程序运行效果 (19)
7设计心得 (20)
魔板游戏的设计
1设计要求
魔板游戏是一款经典的智力游戏,具体要求如下:
(1)魔板由3*3或4*4个格子组成。对于3*3魔板,在前8个格子里随即放置8个编号1-8的方块,最后一个格子是未放置方块的空格子;对于4*4的魔板,在前15格子里随即放置15编号1-15的方块,最后一个格子是未放置方块的空格子。
(2)用鼠标单击任何与空格子水平或垂直相邻的方块可以把该方块移入空格子,而当前方块移动之前所在的格子成为空格子。通过不断地移动方块可以将方块按数字顺序排好。例如,对于3*3格子组成的魔板,要求方块最后排列的顺序如图1所示。
图1
(3)魔板游戏也可以使用图像来代替数字。例如,对于3*3的魔板,将一幅图像分成3*3幅小图像,除去最后一幅小图像(图像的右下角),将其余各幅小图像打乱顺序后放在魔板方块上,最终目标是通过移动方块恢复原始图像(不包括图像的右下角)。
(4)当用户按要求排列好方块后,程序弹出对话框,提示用户成功的消息。
(5)魔板游戏分为两个级别,用户可以通过界面上提供的菜单来选择“初级”或“高级”两个级别。对于“初级”级别,魔板由3*3个格子组成;对于“高级”级别,魔板由4*4个格子组成。
(6)“魔板游戏”提供一幅默认图像,用户可以使用该图像来玩魔板游戏。用户也可以使界面提供的菜单选择一幅新图像,然后使用这个新图像来玩魔板游戏。
2 总体设计
在设计魔板游戏时,需要编写7个java源文件:PuzzleGame.java、PuzzlePad.java 、Point.java、Block.java、HandleImage.java、VerifySuccess.java和HandleMove.java。
魔板游戏除了需要编写的上述7个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenuItem、JButton和JRadioButton等类,以下是我编写的6个Java源文件的总体设计。魔板游戏所用到的一些重要的类以及之间的组合关系如图2所示。
2.1 PuzzleGame类设计
PuzzleGame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始。PuzzleGame类的成员变量中有4种重要类型的对象:PuzzlePad、Jmenu、JRadioButton和JButton。PuzzleGame类的主要成员的作用将在后面的详细设计中阐述,PuzzleGame类创建的窗口以及其中的主要成员对象如图3所示。
2.2 PuzzlePad类设计
PuzzlePad类创建的对象是PuzzleGame类最重要的成员之一,代表“魔板”。该类的成员变量中有5种重要类型的对象:Point、Block、HandleMove、HandleImage
和Image。PuzzlePad类的主要成员的作用将在后面的详细设计中阐述。
2.3 Block类设计
Block类是JTextField 的一个子类,创建的对象是PuzzlePad类的重要成员之一,用来表示“魔板”中的“方块”。
2.4 Point类设计
Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。
2.5 HandleImage类设计
HandleImage类所创建的对象负责将一幅图像分成若干个小图像。
2.6 HandleMove类设计
HandleMove类所创建的对象负责处理事件。
2.7 VerifySuccess类设计
VerifySuccess类所创建的对象负责验证用户是否按要求成功排列魔板中的方块。
3详细设计
3.1PuzzleGame类
1.效果图
PuzzleGame创建的窗口效果如图3所示
图3
2.UML图
MazeWindow类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口,该类的主要成员变量和方法的UML图如图4所示。
图4 PuzzleGame类的UML图
以下是UML图中有关数据和方法的详细说明。
1)成员变量
·puzzlePad是PuzzlePad类声明的对象,用来刻画魔板,是PuzzleGame类中最重要的成员之一。
·bar是JMenuBar创建的菜单条,用来添加菜单。Bar被放置在窗口的顶部。·gradeMenu和choiceImage是JMenu创建的菜单,其名字分别为“选择级别”和“选择图像”。gradeMenu,choiceImage被添加到菜单条(bar)中。·oneGrade、twoGrade、newImage和defaultImage是JMenuItem创建的菜单项,名字依次为“初级”,“高级”,“选择一幅新图像”和“使用默认图像”,oneGrade 和twoGrade菜单项被添加到菜单gradeMenu中;newImage和defaultImage菜单项被添加到菜单choiceImage中。oneGrade、twoGrade、newImage和defaultImage 都将当前窗口注册为自己的ActionEvent事件监视器。
·digitPlay和imagePlay是JRadioButton创建的属于同一选择租中的单选框,名字依次为“数字玩法”和“图像玩法”.同一时刻,digitPlay和imagePlay中只能有一个处于选中状态。
·stsrButton是JButton创建的按钮对象,名字为“开始”。starButton将当前窗口注册为自己的ActionEvent事件监视器。
·image是Image声明的对象。
·tool是Toolkit对象,负责创建image对象。
2)方法
·PuzzleGame()是构造方法,负责完成窗口的初始化操作。·actionPerformed(ActionEvent)方法是PuzzleGame类实现ActionListener接