连连看游戏设计与实现中期报告 (2)

上传人:wo7****35 文档编号:143939415 上传时间:2020-09-03 格式:DOC 页数:6 大小:338.50KB
返回 下载 相关 举报
连连看游戏设计与实现中期报告 (2)_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《连连看游戏设计与实现中期报告 (2)》由会员分享,可在线阅读,更多相关《连连看游戏设计与实现中期报告 (2)(6页珍藏版)》请在金锄头文库上搜索。

1、毕业设计中期报告一、 毕业设计进度:20xx年3月17日-20xx年3月23日,这一阶段主要是查阅文档资料,学习编程环境,熟悉编程语言,我通过观看视频,学习了基础的语法规则,文档主要是连连看的技术方面的资料,查阅连连看实现的核心算法。这一阶段算是需求分析阶段20xx年3月24日-20xx年4月2日,这一阶段主要是做程序的总体设计,明确程序的大致框架,游戏的运行流程,逐步分割出游戏的功能块,可以适当的写一些伪代码,练练手。20xx年4月3日-20xx年4月7日,这一阶段主要是细化游戏的模块,分离出游戏的具体模块,明确他们之间的数据交互,了解各个模块的实现的功能,需要什么技术等等。20xx年4月8

2、日-20xx年4月28日,这一阶段主要是编写游戏各个模块的代码,实现模块,并且最终将模块集成在一起,编写的过程困难重重,程序的bug,让人措手不及,但是成功克服困难,发现学到的东西还是挺多的。最终实现了连连看的初步版本,基本功能都涉及到,但是细节做得不够完善,还有待于后期的补充。二、 毕业设计主要内容:对应于需求分析,可以把程序分成四个模块:游戏界面的设计,图片初始化的生成,图片路径的判断,背景音乐模块1 游戏界面模块设计本程序的界面上的控件比较少,界面的布局相对来说也比较容易,主要是按钮、菜单栏、提示标签、进度条的实现,还有就是背景颜色的选择。1功能上:上方时菜单栏menubar控件,里面是

3、菜单项;稍下一点的位置是Qlabel控件用于提示难度、得分等当前游戏的状态,其中有一个控件是QProgressBar,用来显示游戏时间的状态。右侧是一些游戏中用到的两个按钮,提示和重排。主窗体的大半部分是由10*10的按钮构成的,这些按钮就是后期图片的摆放位置。综上,界面大致分为三块,菜单栏、提示栏(包括特殊按钮)、游戏点击中心。2背景上:为了达到简洁和大气的目的,也为了适合玩家的色彩习惯,我选择了天蓝色作为背景颜色,给人眼前一亮的感觉。2 图片的随机生成 首先游戏中心是由10*10的按钮构成的,要想在按钮中显示图片同时还便于图片在系统中的使用,这里通过数字和图片绑定的方式,实现图片在按钮上的

4、排布,图片的加载需要url,我们通过提前将图片编号(1-25),然后将图片存放在同一路径下,通过一个统一的字符串前缀实现图片的统一加载,而在统一字符串中只含一个整形变量,图片的标号和变量匹配,将图片和变量相绑定,这样就简化了图片的使用。将数字存放在数组中,并且严格按照成对的方式存放图片,因为连连看游戏的前提是消除成对图片。这样容量为100的数组可以存放4组图片,共计2对,这样前期的按序存放图片就完成了。其次,按照上述方式存放的图片是严格规律顺序排布的,这样显然不能满足图片的随机性,为了实现随机,这就需要将图片的存放顺序打乱。随机函数可以很好的解决这个问题,首先应用随机函数产生一个下标在数组容量

5、范围内的整形数字(0-100),同时遍历整个数组,将随机下标对应的值和遍历下标对应的值相互交换,当数组遍历完毕,那么整个数组中的值已经打乱,实现了乱序、随机性。3 图片消除路径判断根据连连看的游戏规则(游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除),现在需要设计一个算法来判断图案能否消除,首先连连看第一个条件是图案相同,如果选择的图案不同,那么游戏不再进行判断,其次游戏最核心的是判断当图案相同的时候图案能否在不超过2个转角或是不超过3条直线的情况下相连。根据转角数不得超过2个的规则,我们可以分为转角数分别为0个、1个、2个这三种情况分别讨论。0转角连通(直线连通):

6、两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。(红色块为欲消除块),如图3-3图3-3一个转角连通:其实相当于两个图片划出一个矩形,这两个图片是一对对角顶点,另外两个顶点如果可以同时和这两个棋子直连,那就说明可以一折连通。(红色块为欲消除块,黑色代表其他阻拦块,圆圈代表折点),如图3-4图3-4两个转角连通: 判断图片A与图片B能否经过有两个转角的路径连通实质上可以转化为判断能否找到一个点C,这个C点与A可以直线连通,且C与B可以通过有一个转角的路径连通。这样就将问题转化为了0个转角和1个转角的情况,0个转角可以直接相连,1个转角可以转化为以C点和B点为对顶角的矩形中寻找另外两个

7、对顶角之一,看能否分别和B、C相直连。若能找到这样一个C点,那么A与B就可以经过有两个转角的路径连通 。判断是否经两个转角连通的算法需要做两个方向上的扫描:水平扫描和垂直扫描。水平扫描。为了判断A,B能否通过2个转角连通,则从A开始在水平方向上向左右扫描,并判断经过的点能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A,B能经2个转角连通。(红色块为欲消除块,黑色代表其他阻拦块,黄色c代表折点,绿色代表折线),如图3-5图3-5垂直扫描。为了判断A,B能否通过2个转角连通,则从A开始在垂直方向上下扫描,并判断经过的点能否与B点经过1个转角连通。显然C点能与B点经1个转角连通,故A

8、,B能经2个转角连通(红色块为欲消除块,黑色代表其他阻拦块,黄色c代表折点,绿色代表折线),如图3-6图3-6这里运用的就是分类判断的方法涵盖全部的路径可能,事实证明该算法正确无误。4 背景音乐的模块背景音乐的设计较为简单,主要出现在游戏刚开始的阶段和游戏进行中的消除阶段,这个模块可以独立设计,添加合适的音乐,作为后期模块集成时候使用。音效的设置采用Qt中支持的Phonon多媒体框架,可以直接采用Phonon类的MediaObject方法来创建声音对象,然后使用该类的createPlayer()方法来设置对应的音乐文件,成功后就可以直接使用play来播放了。总之,背景音乐是利用系统现有的类,调

9、用相应的方法实现音乐的播放。三、 毕业设计主要成果:1 游戏界面由于QT在图形方面处理比较强大,主界面的设计可以用QT设计器自带的ui设计界面来实现,使用ui设计界面最大的优势是减少代码的编写量,程序员可以将大部分的精力用于逻辑算法的设计,不必考虑界面的布局。2 图片的随机生成首先图片需要实现存放,存放的方式是以偶数对的形式存放,因为连连看的图片是表格式的,因此使用二维数组存放图片是比较合理的。图片的存放事实上是通过和数组对应的原则实现转换的,0代表没有图片,1-25代表图片的序号,通过设置统一字符串,将图片的序号作为变量,可以将图片依据名字引用到button上,然后主界面上的图片通过butt

10、on来显示。接下来,需要实现图片的随机排布,这里使用到随机函数产生随机数,通过遍历数组中的图片,然后交换随机下标和遍历下标对应的图片,这样就实现了图片的随机排布。这样就基本实现了连连看的图片的随机排布。3 图片消除路径判断通过查阅资料,了解了连连看游戏的图片分布情况,可以用分类法来写出伪代码,通过对伪代码的逐步分析,再熟悉c+语言,qt环境,就能上手写实际代码了,这块代码是核心,需要花费一定的时间处理。4 背景音乐的详细设计设计了一个Player类,构建一个Phonon:MediaObject *music;对象,用于控制音乐的操作。最终成果实现了连连看的初步模型,能够成功运行,在游戏进行的时候能播放音乐,消除的时候能够播放配对音乐,可以实现重排,提示功能,基本的游戏设置功能也都能初步运行,程序实现了消除功能,实现了最基本的连连看的雏形。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号