Java拼图游戏课程设计报告Word文档下载推荐.docx
- 文档编号:15975533
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:30
- 大小:1.92MB
Java拼图游戏课程设计报告Word文档下载推荐.docx
《Java拼图游戏课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java拼图游戏课程设计报告Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
五、总结和体会..............................................9
六、源代码清单............................................10
一.项目说明
1、项目介绍
该游戏是由以图片为主体的拼图小游戏,这个游戏是一个益智休闲的小游戏。
该类似的小游戏在我们成长的过程中,曾经疯狂的流行着,这是一个老少皆宜的小游戏,它开发人们的智力,加强我们的动手能力和我们的眼睛的洞察力。
该游戏简单方便易操作是一个很好的小游戏,也是一个经久不衰的游戏,在我们这代人中,可谓每个人都玩过这种类似的小游戏,简单易操作是其一直存在的原因之一。
游戏由简单的界面组成的,操作简单,该图像块是由12块小的小图像块构成的,其中有一个空白的小图像块,该图像块是来与别的图像块交换的,以此来实现大图像的拼凑。
在java标准环境下运行,实现通过小的图像块的移动实现大的图像的拼凑。
通过鼠标点击选取小的图像块,通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。
2、游戏展示与使用
1.主体功能
可以从多张图片中选择来进行拼图游戏
通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。
播放游戏音乐的功能
统计游戏中走的步数
游戏中体现友好性,加了数字提示的功能和一个原图预览的区域
完成后,有设置提示弹框显示,所用的步数和恭喜
2.如何使用
如下图:
可以先选择喜欢的图片来进行游戏,点击喜欢的图片后,再点击Start按钮便可以开始游戏
在游戏过程冲,可以使用数字提示的功能,数字提示会按照1,2,·
·
9的顺序给予提示,借此降低游戏难度,增加可玩性
也可以控制游戏音乐的播放与否
在完成拼图后,会提恭喜完成的信息。
若再想继续游戏,则继续选择喜欢的图片,再点击Start按钮继续游戏
若不想玩游戏,则点击右上角叉叉,即可退出游戏。
3.基于Java技术,在Ecilpse下进行编译使用,作者使用环境SUMSUNG电脑,WIN1064位操作系统
二、设计的思路与关键数据结构
1、设计思路
主要是利用了Java中的Swing和Awt来实现界面上的静态显示和动态交互操作,播放音乐的技术使用到了Applet,在算法的实现上,利用了布局上的坐标方式,来计算每个小方格的坐标位置,进行小图片交换和判断是否复原拼图等操作。
2、实现思路
主要分为
五个类来实现总体的功能
在构思布局的过程中,想了3*4的布局,借此可以直接在面板上放置比较多的按钮来实现功能。
在显示界面的思路上,分为四个方面,主界面,图片预览区,拼图区,小平图单元格。
然后要有实现游戏总的一个类,启动类。
所以总共五个类,利用UML时序图表示如下:
3、关键算法
在决定做这个小游戏的时候,翻阅了书本,书本利用了坐标来计算每个小方块的关系,进行计算。
但是不完善,在这个基础上,上网查阅了博客和一些IT网站,最后完成了算法方面的问题。
第一个,打乱小拼图,利用第一个左上角的小方块与周围的小方块进行比较,若原理左上角的四块小方格,则表示打乱成功。
第二个,如何将点击的小方块和空方块来进行交换,将两个方块坐标进行互换即刻,在判断四个方向即刻。
利用UML时序图表示如下:
三、系统的类和结构
类结构与关系:
启动起类,负责调用空的构造方法,来启动整个游戏。
主界面类,进行界面的初始化操作,和添加组件。
预览图片类,负责绘制预览区,将图片载入预览区。
拼图图片类,关键类,实现了方格移动的算法。
拼图单元格类,关键类,实现了方格移动的算法
利用UML时序图,陈勋结构和练习,显示如下:
2、最初完成游戏界面效果如图:
此时无功能,无监听事件
3、完成监听和播放音乐功能后
完成一句游戏后效果如图所示
四、核心算法描述和相关技术说明
主要算法:
//当前方格的移动的算法
publicvoidmove(Stringdirection){//上,下,左,右
switch(direction){
case"
UP"
:
this.setLocation(this.getBounds().x,this.getBounds().y-150);
break;
DOWN"
this.setLocation(this.getBounds().x,this.getBounds().y+150);
LEFT"
this.setLocation(this.getBounds().x-150,this.getBounds().y);
RIGHT"
this.setLocation(this.getBounds().x+150,this.getBounds().y);
default:
//其他情况,不做移动处理
}
}
//随机产生一个方向,进行空方格与小方法的互换
//产生0-3之间的随机数,对应空方格的上下左右移动
intdirection=(int)(Math.random()*4);
//0,1,2,3
switch(direction){
case0:
//空方格向左移动,与左边的方格进行互换位置,左侧方格要向右移动
//nullX=nullX-150;
nullX-=150;
cellMove(nullX,nullY,"
);
break;
case1:
//空方格向右移动,与右边的方格进行互换位置,右侧方格要向左移动
nullX+=150;
case2:
//空方格向上移动,与上边的方格进行互换位置,上侧方格要向下移动
nullY-=150;
case3:
//空方格向下移动,与下边的方格进行互换位置,下侧方格要向上移动
nullY+=150;
}
五、总结和体会
1、优缺点与自我评价
(一)、这个游戏真的太过简单,游戏功能单一,日后要完善,学新的知识
(二)、没和他人进行问题和知识上的学习交流
(三)、自己没有充分利用好时间,课程设计匆匆完成
(四)、图形交互界面不扎实,做的时候要看书,试来试去。
算法方面,这次写的两个算法相对简单,但也耗费了大量脑力,以后要多思考,学习算法。
(五)、这几天的精力都在做这个游戏中,破天荒给每行代码写好注释,以后要继续保持
2、课设与课程总结
在没上java这门课之前,我就知道java的强大,在我们生活中的重要性。
在学期开始的时候,那时我已经接触了Java,后来因为对前端方向感兴趣,所以就没怎么关心过Java,后台用的PHP多。
有空的时候放开书本,发现这本书讲了好多“复古”的内容,在日常中,我并不多见到这些知识。
在一次次地上网查询,了解相关的知识,从这些经历中,我打心底里对java有了新的了解,新的认识,从而对java产生了浓厚的兴趣以及好奇心,发现我之前太轻视这门课了。
此时Java课堂教学虽已经停止,但是我私下,今后会继续学期这门语言,认真对待,尝试自己在这个暑假就利用Java做后台。
这个小游戏挺简单的,三天的时间,没有请教别人,自己慢慢的就捣鼓出来了。
我知道团结的重要性,团队的力量。
以后做这方面的东西,开发,还是要多和他人讨论学习。
对于XX老师,很感谢您的教学付出,您在我心中是一个很负责任的老师,认真严肃的同时还能这么关心学生,贴近学生,真的打心底里佩服。
六、源代码清单
packagegamestart;
importgameui.PictureMainFrame;
/*
*启动器类
*/
publicclassMainApp{
publicstaticvoidmain(String[]args){
//创建主界面
PictureMainFrameframe=newPictureMainFrame();
//显示界面
frame.setVisible(true);
}
*图片小方格类
packagegameui;
importjavax.swing.Icon;
importjavax.swing.JButton;
publicclassCellextendsJButton{
//带有图片的小方格
publicCell(Iconicon){
super(icon);
//设置小方格大小
this.setSize(150,150);
//带有图片并且带有文字的小方格
publicCell(Stringtext,Iconicon){
super(text,icon);
this.setHorizontalTextPosition(CENTER);
//文字水平居中显示
this.setVerticalTextPosition(CENTER);
//文字垂直居中显示
//当前方格的移动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 拼图游戏 课程设计 报告