Java拼图游戏课程设计报告Word下载.docx
- 文档编号:17563810
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:16
- 大小:695.79KB
Java拼图游戏课程设计报告Word下载.docx
《Java拼图游戏课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《Java拼图游戏课程设计报告Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
在游戏中显示完整图片来提供帮助
5
Split.java
根据难度等级切割完整图片为拼图块
图块保存在内存中
6
Matrix.java
加载打乱的图块进行初始化游戏
7
Grades.java
游戏记录和存档,游戏暂停的实现
存档文件格式为**.rc
8
GameOver.java
游戏时间和步数的计算和游戏结束的判断
9
point.java
获得拼图的行数和列数,并向其他函数传参。
10
ButtonClick.java
实现鼠标动作。
11
Arg.java
提供图片路径和成绩记录的路径
公用接口
二、详细设计
该拼图游戏结合了许多元素,可以图片切割,游戏拼图,游戏成功时和打破记录时的判断,同时还有游戏时间和步数的记录,并以文档形式进行保存。
在拼图时首先把图片添加到background目录下,程序会自动获取该目录下的所有文件,并加载到游戏中,进行切割后,显示在拼图按钮上。
在游戏开始后会更新“开始“菜单,增加“显示图片”菜单项。
拼图结束时可以显示游戏成绩和记录的存档。
1.主类Puzzle
(1)成员变量见表2
表2
成员变量描述
变量类型
名称
开始状态
Boolean
Start
窗口宽度
int
fWidth
窗口高度
fHeight
结束对象
gOver
GameOver
焦点控制
boolean
index
(2)方法见表2-1
表2-1
方法名
功能
Puzzle()
创建游戏窗口和设置图标
StartGame()
开始游戏控制,更新开始菜单
endgame()
结束游戏控制
弹出结束窗口
FrameLoseFocus()
使窗口失去焦点事件
FrameGetFocus()
使窗口得到焦点事件
menuNewClick()
进行切割图片
调用类spite()
menuGradesClick()
实现分数记录和显示
调用类ClassGrades
menuShowClik()
在游戏中显示完整图片
调用类classShowImage
menuExit()
退出游戏
menuHelpClik()
实现帮助功能
以弹出式对话框设计
menuAboutClik()
实现关于功能
介绍了相关信息和作者
(3)源代码见文件Puzzle.java
2.类CardFrame
(1)成员变量见表3
表3
布局格式变量
CardLayout
card
容器变量
Container
con
面板数组
Jpanel
Panel[]
(2)方法见表3-1
表3-1
CardFrame()
创建窗口,布局游戏介绍
添加了焦点事件适配器
nextCard()
转到一下张卡片
(3)源代码见文件CardFrame.java
3.类MenuFrame
(1)成员变量见表4
表4
难度等级变量
type
文件路径
String
filename
难度按钮组
ButtonGroup
bgrp
图片选择按钮组
frp
菜单更新控制
update
菜单项数组
JMenu
Mm[]m[]
(2)方法见表4-1
表4-1
MenuFrame()
创建窗口
添加了焦点事件适配器
addMenu()
向菜单栏中添加菜单
以数组形式添加多个菜单
menuLevelClick()
实现等级选择
menuBackgroundClik()
实现背景图片的选择
getType()
返回一个难度等级
getFilename()
获取图片的名字
initMenuBegin()
初始化开始按钮并设置快捷键
同时给出了选择菜单后的相应动作
initMenuBackground()
初始化背景菜单
initMenuAbout()
初始化关于菜单
initMenuOpition()
初始化选择菜单
initMenuLevel()
初始化等级菜单
以选择框形式选择等级
updadeMenuBegin()
游戏开始后更新开始菜单
比原来增加了显示图片菜单项
(3)源代码见文件MenuFrame.java
4类ShowImage
(1)成员变量见表5
表5
无成员变量
(2)方法见表5-1
表5-1
ShowImage()
创建显示图片的窗口
在游戏中提供帮助使用
(3)源代码见文件ShowImage.java
5类Split
(1)成员变量见表6
表6
难度等级
Int
HARDNORMLEASY
路径名称
string
Filenamepath
(2)方法见表6-1
表6-1
Spilt()
创建Spilt对象
Set()
创建存档文件
BufferedImage[]divid
把背景图片切割成拼图块
用到了awt.image.BufferedImage里的系统类
get()
获得Spilt对象
(3)源代码见文件Split.java
6类Matrix
(1)成员变量见表7
表7
面板
Jpanel
panel
拼图行数
int
row
拼图列数
Int
cal
(2)方法见表7-1
表7-1
Matrix()
创建图块所在的按钮并加监听且添加到面板中
Init()
实现图块的随机排列
打乱了图块的顺序
(3)源代码见文件Matrix.java
7.类Grades
(1)成员变量见表8
表8
自定义类
Data
Data[]
拼图步数
Int
step
拼图计时
time
(2)方法见表8-1
表8-1
Grades()
构造函数
creatData()
生成拼图记录的文件
readData()
读取已经存在的记录
以.rc格式保存记录的数据
Set()
记录游戏的数据
有打破记录的判断
Show()
显示记录
8.类GameOver
(1)成员变量见表9
表9
移动步数
int
游戏时间
long
counttime
开始时间
now
控制变量
StopgameOver
(2)方法见表9-1
表9-1
GameOver()
构造函数创建对象
Start()
控制游戏开始
judge()
判断游戏是否结束
pause()
实现游戏的暂停
getStep()
获取移动图块的步数
getTime()
获取游戏时间
(3)源代码见文件GameOver.java
9.类point
(1)成员变量见表10
表10
row
(2)方法见表10-1
表10-1
getRow()
获取行数
getCal()
获取列数
设置拼图行和列
(3)源代码见文件point.java
10.类ButtonClick
(1)成员变量见表11
表11
按钮
JButton
Button[][]
行数和列数
Rowcal
结束标志
boolean
end
(2)方法见表11-1
表11-1
ButtonClick()
获取各个参数
6个参数
actionPerformed()
实现相应的鼠标动作
(3)源代码见文件ButtonClick.java
11类Arg
(1)成员变量见表12
表12
图片路径接口
String
path
记录文件接口
rc
(2)代码见文件Arg.java
三.运行效果
游戏启动后的初始界面图1
图1
选择“关于”菜单下的“帮助“菜单弹出如下对话框:
图2
选择“关于”菜单下的“关于“菜单弹出如下对话框:
图3
选择难度级别–中级和背景图片,按开始后就可进
入游戏画面如图4
图4
在游戏过程中可以按“开始”菜单下面的“显示图片”
来查看完整图片如图5
图5
游戏成功后会显示你游戏所用时间和移动图块的步数如图6
图6
如果你的游戏时间打破记录就会首先显示如下画面如图7
图7
输入名字后,按确定就可以查看所有成绩排名了如图8
(也可以通过“开始”菜单下的“分数排名”来查看成绩)
图8
所有游戏截图完毕
四.工作总结
经过这段时间的学习我收获不小,总结起来有如下几点:
1更进一步理解了JAVA编程的思想,体会到JAVA与其他编程语言的不同。
对于这种面向对象的编程思想,使刚入门的人很快就能写出自己的程序。
2锻炼了自己的动手和自学能力,在编程中有许多类和方法在课本中没有学到和提及到。
都是通过自己查帮助文档,或通过网络进行学习和了解到的。
和别人在一起交流是一件很快了的事。
3体会到写程序最重要的是程序思想,而不是单纯的写代码。
如何解决类之间的关联和继承关系,如何组织类是很关键的。
此外对于接口和变量的私有还是公有,以及参数传递等方面也收获不小。
该程序需要改进的地方:
1在变量的访问权限设置不到位,当时为了保证程序的运行通过,好多本来私有的变量都定义为公有,对于类的成员保护做的不够。
2如果在移动图块时,发出声音就会更完美。
3给程序添加背景音乐。
4程序界面风格设计还有待改进。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 拼图游戏 课程设计 报告