连连看_java课程设计报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
连连看_java课程设计报告

《连连看》 项目设计报告 专 业: 软件工程 班 级: 07级2班 姓 名: 二00九 年 七 月 二十一 日 目 录 1.项目设计目的、意义 ………………………………………… 3 2.项目设计概况 ………………………………………………… 3 3.设计方案及内容 ………………………………………………4 4.结论 ………………………………………………………… 7 5.小组成员分工 ………………………………………………… 7 (要求:给出一级目录,宋体加粗,四号字,1.5倍行距。) (报告正文部分): (要求:正文部分一律用小四号字,宋体,1.5倍行距。一级大标题靠左,加粗。二级大标题靠左,不加粗。) 项目设计目的、意义 综合运用所学Java以及面向对象的知识,设计出实用性,可操作性的连连看游戏程序。通过设计此项目,巩固这两年来学的知识,提高面向对象的编程能力,锻炼了逻辑思维能力,提高动手实验能力,也提高了团队合作项目开发的能力。这些项目设计带来的一些经验为将来我们的实际工作打下一定的基础。 二、项目设计概况 1、项目设计前的准备。主要包括:首先,确定项目的主题方案。看看别人写的游戏程序。我们是参考了QQ游戏的连连看,以它为模板来写这个程序的。QQ的连连看是网络版的,由于人力有限,我们就去掉了网络功能,做成单机版的游戏。然后,分析游戏规则确定大致的游戏算法。最后确定程序所需要的模块,大致分为三个主要的模块,游戏显示 ,游戏控制 ,游戏核心算法。其他模块在开发设计的过程中可以再添加。 2、编写代码实现游戏的算法。首先设计游戏界面,找要使用的图片。然后编写其中的算法,算法包括将游戏地图转化为数组来描述,初始化游戏地图,对数组中两个元素是否可以消除的判断,两个可消除的元素以何种方式连接,自动寻找匹配的点等等。 3、将界面和算法结合起来,并为界面添加功能。如开始游戏,刷新,演示等等。 4、测试,完善一些功能,美化界面。 5、本项目中使用数组实现核心的算法,使用线程在同一时间做更多的事情 使用文件来保存用户的配置信息 setPanel,showPanel,toolPanel和gamePanel(另一个类)。其中设置块setPanel用的是FlowLayout,里面有btnAbout,和cboLevel。btnAbout是描述该项目的设计者。cboLevel设置的各个等级,用户可以根据喜好选择等级来游戏。showPanel里有显示用户所用时间,历史记录,所剩余块数等信息。toolPanel里的布局方式是FlowLayout。包括开始刷新,提示,演示等功能。这个类继承了Observer类。这样,当一个对象的状态发生变化时,能够自动通知其他关联对象,调用update()函数自动刷新对象状态。更好地实现了面向对象的操作。在这个函数中,还对每个功能键的按钮CommandName 属性赋一个值。 Show包里的gamePanel实现了在面板里绘制已初始化的连连看游戏的图片,以及显示当消去图片的动画效果。其中,matrixToRect()函数是将得到的数组坐标转换为子图块。这样在算法的实现上比较方便。在显示消去图片的路径效果时,使用了线程来实现。当observer发现ArrayList状态变化,即为点击了图片这个操作,将所得到的object对象obj(即点击图片所得到的在数组picture中的坐标)保存在Point集合points中。这样集合points中保存的就是点击图片得到(在未消去图片前)的坐标(包括拐点,即空白点)集合。由这些坐标集合可利用matrixToRect()函数在新建的集合shapes中加入起始矩阵和终止矩阵,以及要消去这两个矩阵所经过的路径。为了能实现动画效果,在第一个for循环中加了Thread.sleep(10);让线程暂停一会。并在每点一次图片,产生鼠标事件后,调用refresh()函数。Refresh()函数就是在每隔一秒后刷新gamePanel。这样就实现了消去图片时的动画效果。 Show包里的ImageLoader主要是实现将外部图片转化为程序中能使用的图片。 2、 model模块里的Model类实现的设置地图的大小,图片块的个数。初始化游戏界面的地图,判断两个图片可以消除的条件,消除两个图片,两个可消除的图片以何种方式连接,以及主面板上的功能等的算法。 在初始化地图时,根据不同的等级产生不同个数的随机图片来填充地图。并且数组中具有相同值的元素(即

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档