中期报告--连连看游戏设计与实现_第1页
中期报告--连连看游戏设计与实现_第2页
中期报告--连连看游戏设计与实现_第3页
中期报告--连连看游戏设计与实现_第4页
中期报告--连连看游戏设计与实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计中期报告一、毕业设计进度2014年3月17日2014年3月23日,这一阶段主要是查阅文档资料,学习编程环境,熟悉编程语言,我通过观看视频,学习了基础的语法规则,文档主要是连连看的技术方面的资料,查阅连连看实现的核心算法。这一阶段算是需求分析阶段2014年3月24日2014年4月2日,这一阶段主要是做程序的总体设计,明确程序的大致框架,游戏的运行流程,逐步分割出游戏的功能块,可以适当的写一些伪代码,练练手。2014年4月3日2014年4月7日,这一阶段主要是细化游戏的模块,分离出游戏的具体模块,明确他们之间的数据交互,了解各个模块的实现的功能,需要什么技术等等。2014年4月8日2014年4月28日,这一阶段主要是编写游戏各个模块的代码,实现模块,并且最终将模块集成在一起,编写的过程困难重重,程序的BUG,让人措手不及,但是成功克服困难,发现学到的东西还是挺多的。最终实现了连连看的初步版本,基本功能都涉及到,但是细节做得不够完善,还有待于后期的补充。二、毕业设计主要内容对应于需求分析,可以把程序分成四个模块游戏界面的设计,图片初始化的生成,图片路径的判断,背景音乐模块1游戏界面模块设计本程序的界面上的控件比较少,界面的布局相对来说也比较容易,主要是按钮、菜单栏、提示标签、进度条的实现,还有就是背景颜色的选择。1功能上上方时菜单栏MENUBAR控件,里面是菜单项;稍下一点的位置是QLABEL控件用于提示难度、得分等当前游戏的状态,其中有一个控件是QPROGRESSBAR,用来显示游戏时间的状态。右侧是一些游戏中用到的两个按钮,提示和重排。主窗体的大半部分是由1010的按钮构成的,这些按钮就是后期图片的摆放位置。综上,界面大致分为三块,菜单栏、提示栏(包括特殊按钮)、游戏点击中心。2背景上为了达到简洁和大气的目的,也为了适合玩家的色彩习惯,我选择了天蓝色作为背景颜色,给人眼前一亮的感觉。2图片的随机生成首先游戏中心是由1010的按钮构成的,要想在按钮中显示图片同时还便于图片在系统中的使用,这里通过数字和图片绑定的方式,实现图片在按钮上的排布,图片的加载需要URL,我们通过提前将图片编号(125),然后将图片存放在同一路径下,通过一个统一的字符串前缀实现图片的统一加载,而在统一字符串中只含一个整形变量,图片的标号和变量匹配,将图片和变量相绑定,这样就简化了图片的使用。将数字存放在数组中,并且严格按照成对的方式存放图片,因为连连看游戏的前提是消除成对图片。这样容量为100的数组可以存放4组图片,共计2对,这样前期的按序存放图片就完成了。其次,按照上述方式存放的图片是严格规律顺序排布的,这样显然不能满足图片的随机性,为了实现随机,这就需要将图片的存放顺序打乱。随机函数可以很好的解决这个问题,首先应用随机函数产生一个下标在数组容量范围内的整形数字(0100),同时遍历整个数组,将随机下标对应的值和遍历下标对应的值相互交换,当数组遍历完毕,那么整个数组中的值已经打乱,实现了乱序、随机性。3图片消除路径判断根据连连看的游戏规则(游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除),现在需要设计一个算法来判断图案能否消除,首先连连看第一个条件是图案相同,如果选择的图案不同,那么游戏不再进行判断,其次游戏最核心的是判断当图案相同的时候图案能否在不超过2个转角或是不超过3条直线的情况下相连。根据转角数不得超过2个的规则,我们可以分为转角数分别为0个、1个、2个这三种情况分别讨论。0转角连通(直线连通)两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。(红色块为欲消除块),如图33图33一个转角连通其实相当于两个图片划出一个矩形,这两个图片是一对对角顶点,另外两个顶点如果可以同时和这两个棋子直连,那就说明可以“一折连通“。(红色块为欲消除块,黑色代表其他阻拦块,圆圈代表折点),如图34图34两个转角连通判断图片A与图片B能否经过有两个转角的路径连通实质上可以转化为判断能否找到一个点C,这个C点与A可以直线连通,且C与B可以通过有一个转角的路径连通。这样就将问题转化为了0个转角和1个转角的情况,0个转角可以直接相连,1个转角可以转化为以C点和B点为对顶角的矩形中寻找另外两个对顶角之一,看能否分别和B、C相直连。若能找到这样一个C点,那么A与B就可以经过有两个转角的路径连通。判断是否经两个转角连通的算法需要做两个方向上的扫描水平扫描和垂直扫描。水平扫描。为了判断A,B能否通过2个转角连通,则从A开始在水平方向上向左右扫描,并判断经过的点能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A,B能经2个转角连通。(红色块为欲消除块,黑色代表其他阻拦块,黄色C代表折点,绿色代表折线),如图35图35垂直扫描。为了判断A,B能否通过2个转角连通,则从A开始在垂直方向上下扫描,并判断经过的点能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A,B能经2个转角连通(红色块为欲消除块,黑色代表其他阻拦块,黄色C代表折点,绿色代表折线),如图36图36这里运用的就是分类判断的方法涵盖全部的路径可能,事实证明该算法正确无误。4背景音乐的模块背景音乐的设计较为简单,主要出现在游戏刚开始的阶段和游戏进行中的消除阶段,这个模块可以独立设计,添加合适的音乐,作为后期模块集成时候使用。音效的设置采用QT中支持的PHONON多媒体框架,可以直接采用PHONON类的MEDIAOBJECT方法来创建声音对象,然后使用该类的CREATEPLAYER方法来设置对应的音乐文件,成功后就可以直接使用PLAY来播放了。总之,背景音乐是利用系统现有的类,调用相应的方法实现音乐的播放。三、毕业设计主要成果1游戏界面由于QT在图形方面处理比较强大,主界面的设计可以用QT设计器自带的UI设计界面来实现,使用UI设计界面最大的优势是减少代码的编写量,程序员可以将大部分的精力用于逻辑算法的设计,不必考虑界面的布局。2图片的随机生成首先图片需要实现存放,存放的方式是以偶数对的形式存放,因为连连看的图片是表格式的,因此使用二维数组存放图片是比较合理的。图片的存放事实上是通过和数组对应的原则实现转换的,0代表没有图片,125代表图片的序号,通过设置统一字符串,将图片的序号作为变量,可以将图片依据名字引用到BUTTON上,然后主界面上的图片通过BUTTON来显示。接下来,需要实现图片的随机排布,这里使用到随机函数产生随机数,通过遍历数组中的图片,然后交换随机下标和遍历下标对应的图片,这样就实现了图片的随机排布。这样就基本实现了连连看的图片的随机排布。3图片消除路径判断通过查阅资料,了解了连连看游戏的图片分布情况,可以用分类法来写出伪代码,通过对伪代码的逐步分析,再熟悉C语言,QT环境,就能上手写实际代码了,这块代码是核心,需要花费一定的时间处理。4背景音乐的详细设计设计了一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论