ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:1.94MB ,
资源ID:118107      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/118107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java拼图游戏课程设计报告1.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java拼图游戏课程设计报告1.docx

1、Java程序设计与应用开发课程设计报告设计题目拼图大作战学生姓名 学生班级 学生学号指导教师 完成时间:2016 年 06 月 21 日目录一、项目说明.2二、设计思路与关键数据结构.4三、系统的类和结构.6四、核心算法描述和相关技术说明.8五、总结和体会.9六、源代码清单.10一 项目说明1、 项目介绍该游戏是由以图片为主体的拼图小游戏,这个游戏是一个益智休闲的小游戏。该类似的小游戏在我们成长的过程中,曾经疯狂的流行着,这是一个老少皆宜的小游戏,它开发人们的智力,加强我们的动手能力和我们的眼睛的洞察力。该游戏简单方便易操作是一个很好的小游戏,也是一个经久不衰的游戏,在我们这代人中,可谓每个人

2、都玩过这种类似的小游戏,简单易操作是其一直存在的原因之一。 游戏由简单的界面组成的,操作简单,该图像块是由12块小的小图像块构成的,其中有一个空白的小图像块,该图像块是来与别的图像块交换的,以此来实现大图像的拼凑。在java标准环境下运行,实现通过小的图像块的移动实现大的图像的拼凑。通过鼠标点击选取小的图像块,通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。2、 游戏展示与使用1.主体功能可以从多张图片中选择来进行拼图游戏通过移动鼠标实现小图像的移动,使小图像块能够上下左右的移动从而完成大图像的拼凑的完成。播放游戏音乐的功能统计游戏中走的步数游戏中体现友好

3、性,加了数字提示的功能和一个原图预览的区域完成后,有设置提示弹框显示,所用的步数和恭喜2.如何使用如下图:可以先选择喜欢的图片来进行游戏,点击喜欢的图片后,再点击Start按钮便可以开始游戏在游戏过程冲,可以使用数字提示的功能,数字提示会按照1,2,9的顺序给予提示,借此降低游戏难度,增加可玩性也可以控制游戏音乐的播放与否在完成拼图后,会提恭喜完成的信息。若再想继续游戏,则继续选择喜欢的图片,再点击Start按钮继续游戏若不想玩游戏,则点击右上角叉叉,即可退出游戏。3基于Java技术,在Ecilpse下进行编译使用,作者使用环境SUMSUNG电脑,WIN10 64位操作系统 二、设计的思路与关

4、键数据结构1、 设计思路主要是利用了Java中的Swing和Awt来实现界面上的静态显示和动态交互操作,播放音乐的技术使用到了Applet,在算法的实现上,利用了布局上的坐标方式,来计算每个小方格的坐标位置,进行小图片交换和判断是否复原拼图等操作。 2、实现思路 主要分为五个类来实现总体的功能在构思布局的过程中,想了3*4的布局,借此可以直接在面板上放置比较多的按钮来实现功能。在显示界面的思路上,分为四个方面,主界面,图片预览区,拼图区,小平图单元格。然后要有实现游戏总的一个类,启动类。所以总共五个类,利用UML时序图表示如下:3、关键算法 在决定做这个小游戏的时候,翻阅了书本,书本利用了坐标

5、来计算每个小方块的关系,进行计算。但是不完善,在这个基础上,上网查阅了博客和一些IT网站,最后完成了算法方面的问题。第一个,打乱小拼图,利用第一个左上角的小方块与周围的小方块进行比较,若原理左上角的四块小方格,则表示打乱成功。第二个,如何将点击的小方块和空方块来进行交换,将两个方块坐标进行互换即刻,在判断四个方向即刻。利用UML时序图表示如下:三、系统的类和结构类结构与关系:启动起类,负责调用空的构造方法,来启动整个游戏。 主界面类,进行界面的初始化操作,和添加组件。 预览图片类,负责绘制预览区,将图片载入预览区。 拼图图片类,关键类,实现了方格移动的算法。 拼图单元格类,关键类,实现了方格移

6、动的算法利用UML时序图,陈勋结构和练习,显示如下:2、 最初完成游戏界面效果如图:此时无功能,无监听事件3、 完成监听和播放音乐功能后完成一句游戏后效果如图所示四、核心算法描述和相关技术说明主要算法:/当前方格的移动的算法public void move(String direction)/上,下,左,右switch (direction) case UP:this.setLocation(this.getBounds().x, this.getBounds().y - 150);break;case DOWN:this.setLocation(this.getBounds().x, thi

7、s.getBounds().y + 150);break;case LEFT:this.setLocation(this.getBounds().x - 150, this.getBounds().y);break;case RIGHT:this.setLocation(this.getBounds().x + 150, this.getBounds().y);break;default:/其他情况,不做移动处理break;/随机产生一个方向,进行空方格与小方法的互换/产生0-3之间的随机数,对应空方格的上下左右移动int direction = (int)(Math.random()*4);

8、/0,1,2,3switch (direction) case 0:/空方格向左移动,与左边的方格进行互换位置,左侧方格要向右移动/nullX = nullX - 150;nullX -= 150;cellMove(nullX, nullY, RIGHT);break;case 1:/空方格向右移动,与右边的方格进行互换位置,右侧方格要向左移动nullX += 150;cellMove(nullX, nullY, LEFT);break;case 2:/空方格向上移动,与上边的方格进行互换位置,上侧方格要向下移动nullY -= 150;cellMove(nullX, nullY, DOWN)

9、;break;case 3:/空方格向下移动,与下边的方格进行互换位置,下侧方格要向上移动nullY += 150;cellMove(nullX, nullY, UP);break;五、总结和体会1、优缺点与自我评价(一)、这个游戏真的太过简单,游戏功能单一,日后要完善,学新的知识(二)、没和他人进行问题和知识上的学习交流(三)、自己没有充分利用好时间,课程设计匆匆完成(四)、图形交互界面不扎实,做的时候要看书,试来试去。算法方面,这次写的两个算法相对简单,但也耗费了大量脑力,以后要多思考,学习算法。(五)、这几天的精力都在做这个游戏中,破天荒给每行代码写好注释,以后要继续保持 2、课设与课程

10、总结在没上java这门课之前,我就知道java的强大,在我们生活中的重要性。在学期开始的时候,那时我已经接触了Java,后来因为对前端方向感兴趣,所以就没怎么关心过Java,后台用的PHP多。有空的时候放开书本,发现这本书讲了好多“复古”的内容,在日常中,我并不多见到这些知识。在一次次地上网查询,了解相关的知识,从这些经历中,我打心底里对java有了新的了解,新的认识,从而对java产生了浓厚的兴趣以及好奇心,发现我之前太轻视这门课了。此时Java课堂教学虽已经停止,但是我私下,今后会继续学期这门语言,认真对待,尝试自己在这个暑假就利用Java做后台。这个小游戏挺简单的,三天的时间,没有请教别

11、人,自己慢慢的就捣鼓出来了。我知道团结的重要性,团队的力量。以后做这方面的东西,开发,还是要多和他人讨论学习。对于XX老师,很感谢您的教学付出,您在我心中是一个很负责任的老师,认真严肃的同时还能这么关心学生,贴近学生,真的打心底里佩服。六、源代码清单package gamestart;import gameui.PictureMainFrame;/* * 启动器类 */public class MainApp public static void main(String args) /创建主界面PictureMainFrame frame = new PictureMainFrame();/显

12、示界面frame.setVisible(true);/* * 图片小方格类 */package gameui;import javax.swing.Icon;import javax.swing.JButton;/* * 图片小方格类 */public class Cell extends JButton /带有图片的小方格public Cell(Icon icon) super(icon);/设置小方格大小this.setSize(150, 150);/带有图片并且带有文字的小方格public Cell(String text, Icon icon) super(text, icon);/设

13、置小方格大小this.setSize(150, 150);this.setHorizontalTextPosition(CENTER);/文字水平居中显示this.setVerticalTextPosition(CENTER);/文字垂直居中显示/当前方格的移动public void move(String direction)/上,下,左,右switch (direction) case UP:this.setLocation(this.getBounds().x, this.getBounds().y - 150);break;case DOWN:this.setLocation(this.getBounds().x, this.getBounds().y + 150);break;case LEFT:this.setLocation(this.getBound

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1