欢迎来到天天文库
浏览记录
ID:47527818
大小:1.96 MB
页数:25页
时间:2020-01-13
《Java拼图游戏课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《Java程序设计与应用开发》课程设计报告设计题目拼图大作战学生姓名学生班级学生学号指导教师完成时间:2016年06月21日目录一、项目说明..................................................2二、设计思路与关键数据结构.......................4三、系统的类和结构......................................6四、核心算法描述和相关技术说明..............8五、总结和体会................
2、..............................9六、源代码清单............................................10一.项目说明1、项目介绍该游戏是由以图片为主体的拼图小游戏,这个游戏是一个益智休闲的小游戏。该类似的小游戏在我们成长的过程中,曾经疯狂的流行着,这是一个老少皆宜的小游戏,它开发人们的智力,加强我们的动手能力和我们的眼睛的洞察力。该游戏简单方便易操作是一个很好的小游戏,也是一个经久不衰的游戏,在我们这代人中,可谓每个人都玩过这种类似的小游戏,简单易操
3、作是其一直存在的原因之一。游戏由简单的界面组成的,操作简单,该图像块是由12块小的小图像块构成的,其中有一个空白的小图像块,该图像块是来与别的图像块交换的,以此来实现大图像的拼凑。在java标准环境下运行,实现通过小的图像块的移动实现大的图像的拼凑。通过鼠标点击选取小的图像块,通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。2、游戏展示与使用1.主体功能可以从多张图片中选择来进行拼图游戏通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。播放
4、游戏音乐的功能统计游戏中走的步数游戏中体现友好性,加了数字提示的功能和一个原图预览的区域完成后,有设置提示弹框显示,所用的步数和恭喜2.如何使用如下图:可以先选择喜欢的图片来进行游戏,点击喜欢的图片后,再点击Start按钮便可以开始游戏在游戏过程冲,可以使用数字提示的功能,数字提示会按照1,2,···9的顺序给予提示,借此降低游戏难度,增加可玩性也可以控制游戏音乐的播放与否在完成拼图后,会提恭喜完成的信息。若再想继续游戏,则继续选择喜欢的图片,再点击Start按钮继续游戏若不想玩游戏,则点击右上角叉叉,即可退出游
5、戏。3.基于Java技术,在Ecilpse下进行编译使用,作者使用环境SUMSUNG电脑,WIN1064位操作系统二、设计的思路与关键数据结构1、设计思路主要是利用了Java中的Swing和Awt来实现界面上的静态显示和动态交互操作,播放音乐的技术使用到了Applet,在算法的实现上,利用了布局上的坐标方式,来计算每个小方格的坐标位置,进行小图片交换和判断是否复原拼图等操作。2、实现思路主要分为五个类来实现总体的功能在构思布局的过程中,想了3*4的布局,借此可以直接在面板上放置比较多的按钮来实现功能。在显示界面的
6、思路上,分为四个方面,主界面,图片预览区,拼图区,小平图单元格。然后要有实现游戏总的一个类,启动类。所以总共五个类,利用UML时序图表示如下:3、关键算法在决定做这个小游戏的时候,翻阅了书本,书本利用了坐标来计算每个小方块的关系,进行计算。但是不完善,在这个基础上,上网查阅了博客和一些IT网站,最后完成了算法方面的问题。第一个,打乱小拼图,利用第一个左上角的小方块与周围的小方块进行比较,若原理左上角的四块小方格,则表示打乱成功。第二个,如何将点击的小方块和空方块来进行交换,将两个方块坐标进行互换即刻,在判断四个方
7、向即刻。利用UML时序图表示如下:三、系统的类和结构类结构与关系:启动起类,负责调用空的构造方法,来启动整个游戏。主界面类,进行界面的初始化操作,和添加组件。预览图片类,负责绘制预览区,将图片载入预览区。拼图图片类,关键类,实现了方格移动的算法。拼图单元格类,关键类,实现了方格移动的算法利用UML时序图,陈勋结构和练习,显示如下:2、最初完成游戏界面效果如图:此时无功能,无监听事件2、完成监听和播放音乐功能后完成一句游戏后效果如图所示四、核心算法描述和相关技术说明主要算法://当前方格的移动的算法publicvo
8、idmove(Stringdirection){//上,下,左,右switch(direction){case"UP":this.setLocation(this.getBounds().x,this.getBounds().y-150);break;case"DOWN":this.setLocation(this.getBounds().x,this.getBounds
此文档下载收益归作者所有