java魔板游戏课程设计报告.docx
- 文档编号:869976
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:27
- 大小:295.13KB
java魔板游戏课程设计报告.docx
《java魔板游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《java魔板游戏课程设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
java魔板游戏课程设计报告
Java课程设计报告
魔板游戏的设计
专业
计算机科学与技术(网络技术)
学生姓名
班级
学号
指导教师
完成日期
2014年1月10日
魔板游戏的设计
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所示。
PuzzleGame
JMenu
PuzzlePad
JRadioButton
JButton
Point
Block
HandleMove
Image
HandleImage
VerifySuccess
图2类之间的组合关系
2.1PuzzleGame类设计
PuzzleGame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始。
PuzzleGame类的成员变量中有4种重要类型的对象:
PuzzlePad、Jmenu、JRadioButton和JButton。
PuzzleGame类的主要成员的作用将在后面的详细设计中阐述,PuzzleGame类创建的窗口以及其中的主要成员对象如图3所示。
2.2PuzzlePad类设计
PuzzlePad类创建的对象是PuzzleGame类最重要的成员之一,代表“魔板”。
该类的成员变量中有5种重要类型的对象:
Point、Block、HandleMove、HandleImage和Image。
PuzzlePad类的主要成员的作用将在后面的详细设计中阐述。
2.3Block类设计
Block类是JTextField的一个子类,创建的对象是PuzzlePad类的重要成员之一,用来表示“魔板”中的“方块”。
2.4Point类设计
Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。
2.5HandleImage类设计
HandleImage类所创建的对象负责将一幅图像分成若干个小图像。
2.6HandleMove类设计
HandleMove类所创建的对象负责处理事件。
2.7VerifySuccess类设计
VerifySuccess类所创建的对象负责验证用户是否按要求成功排列魔板中的方块。
3详细设计
3.1PuzzleGame类
1.效果图
PuzzleGame创建的窗口效果如图3所示
图3
2.UML图
MazeWindow类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口,该类的主要成员变量和方法的UML图如图4所示。
puzzlePad:
PuzzlePaddigitPlay,imagePlay:
JRadioButton
bar:
JMenuBarstartButton:
JButton
gradMenu,choiceImage:
JMenutool:
Toolkit
oneGrade,twoGrade:
JMenuItemimage:
Image
newImage,defaultImage:
JMenuItem
PuzzleGame():
无类型
actionPerformed(ActionEvent):
void
main(String[]):
void
JFrame
PuzzleGame
图4PuzzleGame类的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接口中的方法。
PuzzleGame类创建的窗口是菜单中的菜单项、单选框以及按钮上的ActionEvent事件监视器。
如果用户选中oneGrade或twoGrade菜单项时actionPerformed(ActionEvent)方法所执行的操作分别是让puzzlePad对象将自己的级别设置为一级或二级。
如果用户选中newImage或defaultImage菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是分别改变image对象。
当用户单击star按钮后,如果单选框digitPlay处于被选中状态,那么actionPerformed(ActionEvent)方法所执行的操作就是让puzzlePad对象使用数字魔板,如果单选框imagePlay被选中时,那么actionPerformed(ActionEvent)方法所执行的操作就是让puzzlePad对象使用图像魔板。
·main对象是程序运行的入口方法。
3.2PuzzlePad类
1.效果图
PuzzlePad创建的魔板对象效果图如图5所示。
图5
2.UML图
PuzzlePad类是javax.swing包中JPanel容器中的子类,所创建的对像:
puzzlePad是PuzzleGame类中最重要的成员之一,作为一个容器添加到PuzzleGame窗口的中心。
标明PuzzlePad类的主要成员变量、方法以及和PuzzleGame类之间组合关系的UML图如图6所示。
以下是UML图中有关数据和方法的详细说明。
1)成员变量
·point是Point类型的二维数组,其单元为Poin类所创建的对象,用来确定魔板中方块的位置,即确定Block对象在PuzzlePad容器中的位置。
·block是Block类型的二维数组,其单元为Block类所创建的对象,用来表示魔板中的方块。
·distance,grade,m和n是int型整数。
Point对象根据diatance的值来进行初始化,以便确定Point对象之间的距离。
m和n的值是二维数组block和point的行数和列数,m和n默认值都是3。
grade的值代表魔板级别,默认值是1。
·handleMove是HandleMove类所创建的对象,负责处理Block对象上的鼠标事件。
·handleImage是HandleImage类所创建的对象,负责将一幅图像分成若干幅小图像。
·verifySuccess是VerifySuccess类所创建的对象,负责验证用户是否按要求成功排列了魔板中的方块。
·image是Image声明的图像对象。
·tool是Toolkit对象,负责创建Image声明的图像对象:
image。
2)方法
·PuzzlePad()是构造方法,负责创建PuzzlePad对象。
·PuzzlePad对象调用getHandleMove()方法返回其中的HandleMove对象,即返回handleMove。
·PuzzlePad对象调用setImage(Image)方法设置image对象。
·PuzzlePad对象调用setGrade(int)方法设置魔板的级别。
·PuzzlePad对象调用getGrade()方法返回grade。
·PuzzlePad对象调用needInit()方法负责完成Block和Point对象的创建,以及完成其他的对象的初始化。
·PuzzlePad对象调用setIsDigitPlay()方法将魔板设置为数字玩法。
·PuzzlePad对象调用setIsImagePlay()方法将魔板设置为图像玩法。
·PuzzlePad对象调用paintComponent(Graphics)方法将魔板使用的图像,即image对象,绘制在魔板的右侧。
PuzzlePad
point:
Point[][]handleImage:
HandleImage
block:
Block[][];verifySuccess:
VerifySuccess
distance:
grade,m,n:
intimage:
Image
handleMove:
HandelMoveIsDigitPlay:
Boolean
tool:
Toolkit
PuzzlePad():
无类型needInit():
void
getHandleMove():
HandleMovesetIsDigitPlay():
void
setImage(Image):
voidsetIsImagePlay()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 游戏 课程设计 报告