湖南涉外经济学院信息科学与工程学院
二、任务描述和要求
本章主要内容包括本课程设计的任务描述和设计要求两大模块。任务描述主要是介绍在课程设计的整个过程的任务流程和时间规划等;设计要求是提出课程设计过程中要注意的一些细节问题。 2.1 问题描述
连连看游戏,用户需要找出游戏中相同的两个方块,用鼠标分别点击两个相同的小方块,如果它们之间的连接线不超过三条直线,就可以将着两个小方块消掉,当游戏中没有满足条件的图案时,还可以实现重新排列的功能,即点击“重列”按钮就可以重新排列本局游戏中剩余的图案,但计时器还是会继续计时,在游戏结束时能够看到最后的得分。 2.2 任务描述
随着人们工作压力变得越来越大,现如今更多的人开始通过玩游戏来排解内心的压力,而各种各样的游戏也排入市场,一些大型网络游戏更是一些年轻用户的最爱,所有连连看游戏面对市场的竞争压力还是非常大的。
分析连连看游戏的游戏规则,查找规则并对主要功能进行模仿程序实现,对于实现过程中出现的bug进行调试解决。
经过对连连看游戏的初步分析,游戏含有如下规则:
根据用户执行的鼠标事件,做出相应的消除操作。在检验两个小方块能否消掉的时候,要让两个小方块同时满足两个条件才行,就是两者配对并且连线成功。如果要配对并且连线成功又要分为三种情况,也就是检测三种情况。这三种检测分别检测一条直路径,这样就会有三条路径;如果这三条路径上面都是空的小方块,那么就刚好是三条直线把两个小方块连接起来了。要让两个小方块连接起来,一条路径最多不能超过三条直线,也就是最多只能有两个转弯。
具体任务如下:
(1)本课题为连连看游戏的开发;
(2)需要为Windows操作系统的用户设计完成一款连连看游戏,这是一个根据某种算法随机排列具有不同图案的小方块,并形成一个友好的用户界面,供用户娱乐之用的小软件;
(3)本游戏在难度设置上跟传统的小游戏有点区别,不是分为初、中、高三个难度等级,而是一个已经固定的难度,即每局游戏的图案种类数为20种,每种图案的重复数为4对;
(4)程序模块清晰,具有较好的人机交互能力,核心代码需要加上必要的
2
湖南涉外经济学院信息科学与工程学院
注释,以便用户能够很快读懂本游戏的集体实现过程;
(5)设计过程中,前两周,对整个游戏所实现的功能进行详细的设计以及对存在的问题及解决办法进行最终确定;一周完成游戏的程序编写,并优化;最后一周,写出设计本游戏的详细文档说明,并作课程设计汇报;
(6)连连看游戏课程设计实现流程图如图2.1所示: 制定规则 设计算法 算法实现 调试 测试 数据分析 图2.1 课程实现流程图
完成设计报告 图2.1描述了整个课程设计的实现流程。前期工作是制定规则和设计算法,这一阶段主要任务是搜集相关资料,然后根据搜集到的资料结合自己所学知识制定系统实现算法;中期工作是算法实现和调试系统,这一阶段主要任务是完成算法的实现,然后进行调试和优化系统;后期工作是对数据结果进行分析,然后完成课程设计报告。 2.3 设计要求
按照指导老师对课程设计的要求,学生要自行完成各个环节,并且实现且达到灵活运用的目的,要求能够全面深入理解和熟练掌握所学的内容,能够分析、设计和解答各类专业问题。
(1)系统需求分析,对系统中需要实现的功能进行具体分析和设计; (2)采用结构化、模块化程序设计思想设计;
(3)理解连连看游戏玩法的特点,并分析玩法的实现功能; (4)设计是否消除相同小方块的判断算法; (5)游戏“暂停/重新开始”的实现方法;
(6)进行概念设计和逻辑结构设计,以便使系统实现进展顺利; (7)进行详细的设计方案,包括总体设计和详细设计,这包括程序设计代码的分析和系统运行界面截图的分析;
(8)要求人机交互性较强,界面较美观;设计方案和执行结果的分析总结。
3
湖南涉外经济学院信息科学与工程学院
三、需求分析
需求分析的主要任务即详细的找出程序所需要的各种功能实现,是对系统功能进一步分析和抽象,以确定系统应当做什么的问题,从而完成系统的逻辑设计。本课程设计是连连看游戏的实现,首先是要实现连连看游戏的基本功能,根据连连看游戏的玩法,设计程序,实现程序功能。本系统需求分析分为四个部分:功能分析、功能需求、功能模块和系统需求分析报告。 3.1功能分析
每次用户选择两个相同的小方块,如果小方块满足一定条件(这两个小方块之间存在转弯少于3的路径),则两个小方块可以消掉,给定任意具有相同图案的两个小方块,用户需要寻找这两个小方块之间在转弯最少的情况下,如果这个最优路径的转弯数目小于3,则这两个小方块可以消掉。所以,主要需要解决的问题就是怎么样得出相同小方块之间的最优路径,这个最优路径首先需要保证转弯数目最少。
游戏开始时,系统会在游戏区域中随机布下20*4个不同图案的小方块。第一次使用鼠标点击游戏界面中的小方块,该小方块此时为\被选中\状态,再次用鼠标点击其他小方块,若该小方块与被选中的小方块图案相同,且把第一个小方块到第二个小方块连起来,连线的路径中间的直线不超过 3 根(最多两次转弯),则消掉这一对小方块,否则第一个小方块恢复成未被选中状态,而第二个小方块变成“被选中”状态。每次消除一对小方块会增加一定的时间。
胜利条件:将游戏区域上的小方块全部消除掉且时间未消耗完。
失败条件:时间消耗完,或者剩下的小方块没有路径能够匹配(即界面上的小方块仍未全部消掉)。 3.2功能需求
(1)游戏界面大致分为两大区,左边为游戏操作区,右边是设置区; (2)本游戏功能较为简单,只具有连连看游戏的基本功能(计时器、积分器、暂停/重新开始、重列),默认的图案种类数是20种,重复数每种图案为4对;
(3)游戏操作区是系统自动排列的默认的20*4个小方块,用户可以点击小方块来消除具有相同图案的小方块;
(4)设置区中显示当前游戏的种类数、重复数、“开始游戏”按钮、“重列”按钮、“暂停/重新开始”按钮和得分情况;
(5)在游戏操作区的下方显示有“剩余时间”的进度条,当进度条的时间耗完时,则游戏结束;
4
湖南涉外经济学院信息科学与工程学院
(6)游戏中用到的部分图案如下所示:
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36 3.3 功能模块
本游戏主要细分为以下几大模块: (1)游戏主界面
以Microsoft Visual Studio 2010为开发平台设计主界面,主要控件有1个主窗体Form、1个groupbox、1个progressbar、4个button、7个label。
(2)随机排列小方块 (3)鼠标事件 (4)小方块消除判断 (5)游戏难度设置
本游戏没有用户自定义游戏难度选择,而是使用默认的图案种类数是
20种,每种图案的重复数是4对,所以游戏的灵活性较差。
(6)游戏重列
对本局游戏中剩下的小方块重新排列,计时器不会暂停。此模块的主要作用就是在用户自身不能找到能够消掉的小方块的情况下,通过重列剩下的小方块来产生新的路径,使游戏能够继续玩下去。
(7)暂停/重新开始
点击“暂停”按钮能够使当前正在运行的游戏暂时停止,主要是使让时间停止,不再倒计时;游戏暂停时鼠标不能对游戏操作区域进行操作,此时“暂停”按钮变成“重新开始”按钮,用户只要点击“重新开始”按钮即可继续游戏操作。
(8)游戏胜利(游戏结束,需要重新开始游戏) (9)游戏失败(游戏结束,需要重新开始游戏)
5
湖南涉外经济学院信息科学与工程学院
3.4系统需求分析总结
本系统的结构基本合理,系统功能也基本能够达到连连看游戏的要求,采用了最基本的最短路径优先的算法,使系统地运行效率达到最高。本系统的输入边界是用户进行的鼠标事件操作和对游戏的复杂程度进行设置;输出边界是游戏结束,游戏胜利或者游戏失败。通过对连连看游戏规则以及相关算法的分析,本系统总的数据量较小,规模不是很大,适合于在普通微机或小型机上运行。
6

