QT版连连看制作的实验报告
连连看实习总结

实训项目:连连看一.连连看简介游戏“连连看”顾名思义就是找出相关联的东西,该游戏对一堆图案中相同的图案进行配对,在一定的规则内可以做相关联的处理。
玩家可以将2个相同图案的对子连接起来,连接线不多于 3 根直线,就可以成功将对子消除。
游戏速度节奏快,画面清晰,并且有多样的图案,可以寻找到挑战的目标,长期的保持游戏的新鲜感。
游戏通过定义数组,根据一定的算法实现规定的路径判断。
二. 连连看项目工作流程1.开班,进行个人测评之后,组员分配2.上交小组项目立项报告3.项目正式开始,跟随现场经理学习C#语言编写代码4.进行系统设计。
5.代码编辑。
首先是框架的构造,然后进行界面设计,图片的处理,再就是判断路径,消除同样的图片,最后进行声音处理。
6.小组合作完成项目,从而达到系统实现7.由项目经理进行项目验收,上交相关文本文档,完成结业三.连连看项目具体内容本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,重新开始新游戏。
游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。
当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。
在两张想同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。
考虑到本游戏软件是单机小游戏,所以充分考虑到了它的娱乐性,并没有很复杂的功能。
系统结构图:四.基本思路1.游戏画面画面,对于设计者来说,可以算是最简单的地方;但对于玩家,这却是最重要的,一般玩家不会关心你是怎么实现的,他所关心的是画面的美观,漂亮,是不是能让人赏心悦目。
2.获取图片位置通过数组从图片库随即获取规定个数得到图片,随机分布在画布上。
图片个数一定是偶数个。
3.路径判断的思路连连看所要求的是:1:两个目标是相同的2:两个目标之间连接线的折点不超过两个。
(连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况1:直线相连 2:一个折点 3:两个折点:可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。
(完整版)连连看C语言毕业课程设计报告

(完整版)连连看C语言毕业课程设计报告目录问题描述连连看是一款简单有趣的小游戏,曾经风靡一时,玩家要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手,游戏速度节奏快,画面清晰可爱,适合细心的玩家。
游戏胜利条件的判定:将棋盘上面的格子全部消除掉;失败的判定:规定的时间内格子没有消除。
问题分析连连看需要解决的问题包括:(1)整个游戏界面和各种图案的图形显示;(2)如何判断鼠标所点的两个图像能否相消;(3)如何判断是否消除完全;(4)如何判断游戏的结束及如何终止游戏;(5)游戏难度的设计和得分规则游戏总的流程可以描述如下:首先出现游戏界面,一幅由10*6的小图片的构成的画面,玩家需要点击2 个相同图案的对子,其连接线不多于3 根直线,也就是说连接相同图案时,直线只能有两个折点,就可以成功将对子消除。
此外,需要重点考虑的是游戏面板和各种形状的方块的数据结构表示。
格子面板可以用一个二维数组来表示。
1、开发工具的介绍【VS2008 】VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。
使用Visual Studio 2008可以高效开发Windows应用程序。
设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。
同时Visual Studio 2008支持项目模板、调试器和部署程序。
Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。
VS的开发界面分为两个版本:整合模式和孤立模式,分别对基于语言的开发和基于特别工具的开发作了优化。
【EasyX 】EasyX 是针对C++ 的图形库,可以帮助C 语言初学者快速上手图形和游戏编程。
许多学编程的都是从C 语言开始入门的,而目前的现状是:1. 有些学校以Turbo C 为环境讲C 语言,只是Turbo C 的环境实在太老了,复制粘贴都很不方便。
qt连连看课程设计

qt连连看课程设计一、课程目标知识目标:1. 让学生掌握Qt连连看游戏的基本规则和操作方法。
2. 让学生了解Qt编程环境中常用的控件及其功能。
3. 让学生理解程序设计的基本逻辑和流程控制。
技能目标:1. 培养学生运用Qt编程环境进行连连看游戏设计和开发的能力。
2. 培养学生运用逻辑思维和问题解决能力,编写出高效、合理的程序代码。
3. 提高学生的团队协作能力,学会与他人共同分析和解决问题。
情感态度价值观目标:1. 激发学生对编程的兴趣,培养其主动探索和创新的意识。
2. 培养学生面对困难时保持积极的心态,勇于克服困难,不断提高自己。
3. 培养学生遵守游戏规则,树立公平竞争的价值观。
课程性质:本课程为信息技术学科选修课程,适用于有一定编程基础的学生。
学生特点:学生具备基本的计算机操作能力和编程基础,对游戏开发有浓厚兴趣。
教学要求:1. 结合课本内容,注重理论与实践相结合,让学生在实践中掌握知识。
2. 创设有趣的游戏场景,激发学生的学习兴趣,提高学习积极性。
3. 注重培养学生的团队协作能力和解决问题的能力,提高综合素质。
二、教学内容1. Qt编程基础:介绍Qt编程环境,包括安装、配置和使用方法,使学生熟悉Qt开发工具。
- 章节内容:Qt概述、安装与配置、第一个Qt程序。
2. Qt常用控件:学习Qt中常用的控件,如按钮、标签、文本框等,了解其属性和事件处理。
- 章节内容:控件概述、按钮控件、标签控件、文本框控件。
3. 游戏规则与设计:讲解连连看游戏的基本规则、界面设计和游戏逻辑。
- 章节内容:游戏规则、界面设计、游戏逻辑。
4. 程序设计与实现:学习流程控制、循环、条件语句等编程知识,实现连连看游戏功能。
- 章节内容:流程控制、循环、条件语句、函数、事件处理。
5. 团队协作与项目实践:分组进行项目实践,培养学生团队协作能力和实际操作能力。
- 章节内容:团队协作、项目实践、代码评审。
6. 测试与优化:对连连看游戏进行测试、优化,提高程序性能和用户体验。
连连看游戏设计与实现毕业设计实现

连连看游戏设计与实现摘要“连连看”游戏是一款常见游戏。
游戏速度节奏快,画面清晰可爱,适合大众玩家。
本文主要介绍了游戏的设计过程,其中游戏主要分为4个模块,游戏界面模块、图片随机生成模块、图片消除路径判断、背景音乐模块。
游戏核心模块中图片随机生成采用了数字和图片绑定,运用随机函数以及数组交换的算法,实现了游戏图片初始化状态,有效的解决了图片排布问题,方案简单易行;另一核心模块图片消除路径判断,主要采用了分类判断的算法,将连连看图片的位置一一归类,分类设计函数判断位置,实现游戏的基本消除功能。
算法思路清晰,便于理解和编码。
本游戏实现了连连看的基本功能,可以准确的消除图片、记录分数、提示时间,同时设计了人性化的提示,解决僵局的功能,创新实现了新的连连看规则——消除图片后给予时间奖励,激发了玩家的积极性。
关键词:QT;连连看;算法;数组Link Game Design and ImplementationAbstractLinkgame is a common game. The game has fast-pacedspeed and the cute picture That is fit for public players . This paper describes the design process of the game , where the game is divided into four modules, the game interface module , the module of randomly generated pictures , eliminating path judgment , background music modules.Game Core module, the module of randomly generated pictures ,bind pictures and images, use the random function and a arrayexchange algorithm, and achieve game picture initialization state , effectively solve the problem of picture arrangement , the plan is simple ; another core module pictures ,eliminate path judgment , mainly uses classification algorithms to determine the location oflinkgame picture and classify it , classification functions judge the location,and realize the basic function of the game cancellation . Algorithm is clear, easy to understand and encoding.The game realize the basic function of linkgame, it can eliminate the exact picture , recording scores , suggesting that time ,and design humane tips ,the function of solving the deadlock .It achieves new rules -- after elimination of the picture you can be given time bonus .That is stimulating the enthusiasm of the players .Keywords:QT; Link; algorithm; Array目录摘要 (I)ABSTRACT ...................................................................................................................... I I 目录 .. (1)1. 绪论 (1)1.1游戏简介 (1)1.1.1 游戏背景 (1)1.1.2 游戏规则 (1)1.2游戏功能 (1)1.2.1 美观大气的界面 (1)1.2.2 背景音乐的添加 (1)1.2.3 奖励时间的设置 (1)1.2.4 提示功能 (1)1.2.5 僵局的重置 (1)1.2.6 得分记录、难度 (2)1.2.7 开始、重新开始、退出 (2)1.3游戏设计的主要工作 (2)1.3.1 游戏设计需要解决的问题 (2)1.3.2 游戏设计需要使用的算法 (2)1.3.3 游戏设计创新点 (2)2. 系统分析 (4)2.1技术可行性分析 (4)2.1.1 算法分析 (4)2.1.2 开发语言分析 (12)2.1.3 开发平台分析 (14)2.2需求分析 (16)2.2.1 环境分析 (16)2.2.2功能需求分析 (16)2.2.3性能需求 (17)2.2.4可靠性和可用性需求 (17)3. 游戏概要设计 (18)3.1任务概述 (18)3.1.1 目标 (18)3.1.2 需求概述 (18)3.2总体设计 (18)3.2.1 处理流程 (18)3.2.2 系统结构图 (18)3.2.3 游戏界面模块设计 (19)3.2.4 图片的随机生成 (19)3.2.5 图片消除路径判断 (19)3.2.6 背景音乐的模块 (21)4. 详细设计 (23)4.1视图层设计 (23)4.1.1 界面效果图,如图4-1 (23)4.1.2 思路 (23)4.2逻辑层设计 (23)4.2.1 图片偶数对存放以及随机生成 (23)4.2.2 图片消除路径判断详细设计 (25)4.3其他控件的设计实现 (31)4.3.1 重排按钮实现 (31)4.3.2 提示按钮实现 (32)4.3.3 奖励时间和进度条的逻辑实现 (34)4.3.4 音乐模块实现 (36)5. 游戏测试 (37)5.1软件测试 (37)5.1.1软件测试简介 (37)5.1.2测试方法 (37)5.1.3测试步骤 (38)5.2连连看游戏系统测试 (38)5.3游戏系统性能分析 (39)结论 (39)致谢 (40)参考文献 (41)外文原文 (42)中文翻译 (48)1. 绪论1.1 游戏简介1.1.1 游戏背景连连看游戏是游戏中经典中的经典,曾经风靡网络,无论是单机版的还是网络对战的,它以简单,容易上手,图片新颖的特点获得了大量的粉丝,它是一款经久不衰的休闲小游戏,适合闲来无事的大众,以供消遣。
连连看的实验报告(3篇)

第1篇一、实验目的1. 了解连连看游戏的基本原理和设计方法。
2. 掌握连连看游戏的设计与开发流程。
3. 提高编程能力和游戏设计能力。
二、实验内容1. 游戏背景:连连看是一款休闲益智类游戏,玩家需要通过点击相同图案的方块,将它们消除。
2. 游戏设计:(1)游戏界面:包括标题、菜单、游戏区域、分数显示等。
(2)游戏规则:点击相同图案的方块,将它们消除,消除的方块越多,分数越高。
(3)关卡设计:设置不同难度级别的关卡,提高游戏的可玩性。
3. 编程实现:(1)游戏界面:使用Java Swing库实现游戏界面。
(2)游戏逻辑:使用面向对象编程思想设计游戏逻辑,包括方块类、游戏区域类、分数类等。
(3)数据结构:使用二维数组存储游戏区域中的方块信息。
三、实验步骤1. 设计游戏界面:使用Java Swing库创建游戏窗口,包括标题、菜单、游戏区域、分数显示等。
2. 设计游戏逻辑:(1)创建方块类:包含方块的图案、位置等信息。
(2)创建游戏区域类:包含方块的创建、移动、判断是否消除等逻辑。
(3)创建分数类:用于计算和显示玩家的分数。
3. 编写代码实现:(1)实现游戏界面:使用Java Swing库创建游戏窗口,包括标题、菜单、游戏区域、分数显示等。
(2)实现游戏逻辑:使用面向对象编程思想设计游戏逻辑,包括方块类、游戏区域类、分数类等。
(3)实现数据结构:使用二维数组存储游戏区域中的方块信息。
4. 调试与优化:在开发过程中,不断调试代码,优化游戏性能,提高用户体验。
四、实验结果与分析1. 实验结果:成功设计并实现了一款连连看游戏,游戏界面美观,游戏逻辑合理,可玩性强。
2. 分析:(1)通过本次实验,掌握了连连看游戏的基本原理和设计方法。
(2)提高了编程能力和游戏设计能力,学会了使用Java Swing库和面向对象编程思想进行游戏开发。
(3)实验过程中遇到了一些问题,如数据结构设计不合理、游戏逻辑错误等,通过不断调试和优化,最终解决了这些问题。
连连看游戏分析设计与实现

连连看游戏分析设计与实现1.连连看(picture matching)游戏简介连连看游戏界面上均匀分布2N个尺寸相同的图片,每张图片在游戏中都会出现偶数次,游戏玩家需要依次找到两张相同的图片,而且这两张图片之间只用横线、竖线相连(连线上不能有其他图片),并且连线的条数不超过3条,那么游戏会消除这两个图片。
连连看是一款广受欢迎的小游戏,它具有玩法简单、耗时少等特征,尤其适合广大白领女性在办公室里休闲、放松。
2.分析连连看连连看是一个小的、简单的游戏程序,所以不需要大量的分析。
首先,我们列出用例。
用例不多。
有:用户开始游戏,用户进行配对图片。
图1.连连看用例图下一步就是为每个用例和相关场景写一个文本描述。
连连看相当简单,只有一个参与者,就是游戏玩家。
在使用这个程序的过程中也不会碰到出错的情况,所以场景也很短。
开始游戏的场景:玩家打开应用程序,点击“开始”按钮,会生成三种不同的图片排列方式(矩阵、竖向、横向排列)。
配对图片的场景:玩家对图片进行配对,配好后会消除这对图片。
当在规定的时间内配对完所有图片时,弹出胜利对话框,否则弹出失败对话框。
尽管只有2个简单用例,但它们确实揭示了我们所需完成的任务的重要方面。
大的应用程序会有更多的用例,有些更为复杂,有些一样简单。
用例导致了场景。
场景通常要比这个例子中的复杂,反映了在某项特征或功能上,用户和开发者之间的更为细节化的合约。
每个场景所需的细节程序取决于许多方面,但将场景写下来有助于确保每个人理解系统应该完成什么任务。
我们在连连看的用例和场景的呈现上不是太正规。
有时,这种非正规的方式和几张纸或白板就足够了。
更为正规的面向对象方法学在确定用例及相应场景方面有更正规的做法,也提供了特定的软件来创建和跟踪用例和场景。
3.(分析阶段)发现对象、属性和操作通过阅读问题描述以及实际情况,我们得到以下名词清单:图片,游戏视图,图片的排列方式,服务组件。
包图通过对问题的声明的名词进行分析,我们得到游戏的包图:图2,连连看包图其中util包负责与图片加载有关的处理,view包负责呈现界面,Object包是整个游戏的配置参数,impl是图片的排列方式,board包含了整个游戏的面板类。
连连看实验报告

一、实验目的1. 熟悉并掌握使用Java语言进行图形界面编程的基本方法。
2. 理解并运用面向对象编程思想,提高编程能力。
3. 掌握连连看游戏的基本原理和实现方法。
4. 培养团队合作能力和创新意识。
二、实验内容1. 熟悉Java语言的基本语法和面向对象编程思想。
2. 使用Java Swing库开发图形界面。
3. 实现连连看游戏的基本功能,包括游戏界面、数据结构、逻辑算法等。
三、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse3. 编程语言:Java四、实验步骤1. 创建Java项目,命名为“连连看游戏”。
2. 设计游戏界面,包括游戏区域、时间显示、分数显示等。
3. 定义数据结构,用于存储游戏中的图片和匹配关系。
4. 编写游戏逻辑算法,包括初始化游戏、随机生成图片、匹配图片等。
5. 实现游戏控制,包括鼠标点击事件、图片移动、匹配判断等。
6. 编写游戏结束判断和结果显示。
五、实验结果与分析1. 实验结果通过以上步骤,成功开发了一个连连看游戏。
游戏界面美观,功能完善,可以满足用户的基本需求。
2. 实验分析(1)游戏界面设计:采用Java Swing库中的JPanel、JLabel等组件,实现了游戏界面的布局。
通过设置背景图片、颜色等属性,使游戏界面更具吸引力。
(2)数据结构:使用二维数组存储游戏中的图片,每行每列代表一个位置。
通过遍历数组,判断相邻图片是否可以匹配。
(3)逻辑算法:在游戏开始时,随机生成图片并存储到数组中。
当用户点击一个图片时,判断其相邻图片是否可以匹配。
如果可以匹配,则将这两个图片移动到一起,并更新分数和时间。
(4)游戏控制:通过监听鼠标点击事件,实现图片的移动和匹配判断。
当图片移动到一起时,判断是否匹配,并更新游戏状态。
六、实验总结1. 通过本次实验,掌握了Java语言的基本语法和面向对象编程思想,提高了编程能力。
2. 熟悉了Java Swing库在图形界面编程中的应用,为以后开发类似项目奠定了基础。
连连看游戏设计报告

武汉工程大学计算机科学与工程学院综合设计报告设计名称:系统软件综合设计设计题目:手机连连看游戏设计与实现学生学号:1005090222专业班级:2010级计算机科学与技术(计算机科学方向)02班学生姓名:杨星学生成绩:指导教师(职称):徐银霞(讲师)课题工作时间:2013.12.30 至2014.1.10成绩评定表学生姓名:杨星学号:1005090222 班级:计算机科学02班答辩记录表指导教师评语目录摘要 (II)Abstract (III)第一章课题背景 (1)1.1 课题背景 (1)1.2 设计要求 (1)第二章设计方案论述 (3)2.1 需求分析 (3)2.2 模块设计 (3)第三章详细设计 (5)3.1 开发环境 (5)3.2 算法描述 (5)3.3 类的设计 (7)第四章设计结果及分析 (9)4.1 游戏启动测试 (9)4.2 游戏过程测试 (9)4.3 游戏结束测试 (10)总结 (12)致谢 (13)参考文献 (14)附录主要程序代码 (15)摘要连连看是一款经典的休闲游戏,将相同的两个图案以三根以内的线连接起来即可消除,规则简单易上手,游戏节奏快,不失乐趣,适合广大人群。
这里设计的连连看游戏实现在windows phone 8手机平台上。
旨在熟悉其基本的开发模式,了解手机平台应用开发与PC平台的不同之处,感受移动平台独特的特性。
作为手机游戏,操作直观,随时随地可进行游戏,更加方便快捷。
游戏实现计时,提示,重新开始等基本功能。
游戏核心算法为计算两个相同图案之间的最短路径。
分图案相邻和不相邻情况。
对于相邻图案直接可消除,对于不相邻图案,通过特定算法求解,寻求最短路径。
失败则无法消除。
游戏基于.NET平台,以Visual Studio Express For Windows Phone工具开发,采用Silverlight框架,用C#程序设计语言设计。
经测试可运行在windows phone 8手机上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.游戏概述1.1游戏简介游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。
“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。
游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。
这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。
并于2004年,取得了国家版权局的计算机软件著作权登记证书。
随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。
如“水晶连连看”,“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。
2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。
“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。
1.2游戏功能本次设计连连看主要是在原连连看对战的基础上设计挑战模式,具体的功能如下所述:●游戏运行界面简单美观,操作简单,运行稳定;●能够根据不同的等级模式播放不同的游戏背景音乐,包括操作方向键、消行时的声音,音量由玩家操作控制;●设计不同的游戏难度,当玩家达到一定的积分,可以进入相关难度的等级;玩家可直接操作界面上的相关按钮来控制游戏的开始、暂停、设置、退出等功能。
二.需求分析2.1开发的需求2.1.1 C++C/C++的哲学就不一样了,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Compile,因为各平台都有专属的Library。
但是C/C++优势就是执行速度快,若能解决GUI Library的问题,则跨平台即可解决。
除了GUI Library需要统一外,还得看该Library设计的好不好才行,Linux GUI我没写过就不说了,若在Windows平台,Borland的C++ Builder使用Delphi的VCL Library,Microsoft的Visual C++可以用MFC和.NET Framework,首先来看Borland的C++ Builder,它使用标准的ANSI C++语言开发,利用VCL写出来的程序也算蛮漂亮的,执行速度很快,比较麻烦的是C++Builder当初为了缩短上市时间,并没有设计自己的Library,而是藉用Delphi的Library,导致C++ Builder在Compile时,是先用Delphi的Compiler将VCL compile成object file 后,再用C++ Builder将你写的C++程序compile成object file,最后再用Linker将所有的object file link起来,由于这都是IDE在做,对程序设计师似乎影响不大,但VCL由于是Delphi的Library,所以若想深入研究VCL的source code时,则必须学Delphi的Pascal才行,否则看不懂VCL source code,这也是很多人对C++ Builder却步的原因。
再来看Microsoft的Visual C++,MFC用的是完整的ANSI C++语言,所以语言部分不是问题,但若你看过用MFC写的程序,你一定会惊讶为什么这么复杂,程序代码非常冗长不好看,且MFC是有名的难学,若Visual C++搭配.NET Framrwork,则无法使用ANSI C++,得用其.NET 平台版本的C++/CLI,相信这点很多人就有意见了,不过.NETFramework由于设计的不错,所以写出来的程序相当精简漂亮,感觉和C++ Builder差不多,不过无论是C++ Builder或Visual C++开发的GUI,所开发出来的程序都无法跨平台,当然也无法跨平台Compile。
2.1.2 QT(1)QT的介绍Qt 是一个多平台的C++图形用户界面应用程序框架。
它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
Qt 是完全面向对象的很容易扩展,并且允许真正地组件编程。
自从 1996 年早些时候,Qt 进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。
Qt 也是流行的Linux 桌面环境KDE 的基础,KDE 是所有主要的Linux 发行版的一个标准组件。
Qt 的特点有:可移植性、易用性、执行速度快等特点。
(2)QT的优势●XML 支持。
●大量的开发文档●支持 2D/3D 图形渲染,支持 OpenGL●优良的跨平台特性,Qt支持下列操作系统: Microsoft Windows95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX,Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO,AIX, OS390,QNX 等等。
●面向对象,Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。
Qt 提供了一种称为signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
●丰富的 API,Qt包括多达250个以上的 C++ 类,还提供基于模板的collections,serialization,file, I/O device,directorymanagement, date/time 类。
甚至还包括正则表达式的处理功能。
2.2 游戏功能需求本次设计是在传统的连连看上设计实现对战的连连看,玩家通过达到一定的积分来获得继续闯关的机会,还有机会开启神秘的应藏关,以此来增加游戏的可玩性。
游戏的基本规则:程序随机产生任意成对的图片,当定点击开始游戏时,电脑根据时间参数随机生成固定的成对图片,游戏再次开始,玩家可通过鼠标上的左键,自由的点两张图片。
如果点击两次时,两张图片相同,且满足程序的算法则这两张图片可消去。
消去图片后,游戏可给玩家加分,若在规定的时间内,玩家没有消掉所有的图片则游戏失败。
由于是闯关模式,达到一定分数的玩家可以继续挑战新的游戏,游戏的难度会相应增加,并且还增加了新玩法。
具体的游戏功能如下:游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景取自网上中的图片,体现了游戏的挑战性。
鼠标处理事件需求:通过点击主窗体中相应的按钮,可以实现游戏的开始、暂停、结束,通过点击选项设置中相应的按钮,可设置声音的大小及方向键↓的功能。
显示需求:当两次点击的图片相同且满足算法可以消去,当达到一定分数的时候,游戏会进入下一关,并有障碍了。
游戏闯关设计需求:随着游戏的难度不同,玩法会发生改变,需要在游戏中设置障碍,蒙手游戏。
如果玩家能到达并完成最后一关,则玩家挑战成功,游戏结束。
最后游戏效果如下:三.游戏总体设计3.1 总体设计整体设计思想:进入游戏后,有三个按钮可供玩家选择:开始游戏,游戏设置,退出游戏,在进入相应子菜单后也可返回到主菜单,每个菜单的具体设计将在后面介绍,以下是总体的游戏流程图。
3.2游戏核心模块的设计3.2.1连连看所要求的是:1.两个目标是相同的;2.两个目标之间连接线的折点不超过两个。
(连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况:(1)直线相连;(2)一个折点;(3)两个折点。
可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。
所以设计思路就是:假设目标点p1 , p2 ,如果有两个折点分别为z1 , z2 那么,所要进行的是:➢如果验证p1 , p2 直线连线,则连接成立➢搜索以p1,p2的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2 ,验证p1到z1/z1到z2/z2到p2是否都能直线相连,是则连接成立。
3.2.2 连连看消去算法实现在检验两张图片能否消掉的时候,我们要让两张图片同时满足两个条件才行,就是两者配对并且连线成功。
分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。
这样就会有三条路经。
若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)(1)相邻(2)若不相邻的先在第一个按钮的同行找一个空按钮。
1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。
2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。
3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。
没有的话路经就通了,可以消了.(3)若2失败后,再在第一个按钮的同列找一个空按钮。
1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。
3).没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。
没有的话路经就通了,可以消了。
若以上三步都失败,说明这两个按钮不可以消去。
四.具体方案4.1视图层设计4.1.1图形的产生加载图块图片资源,调用图片库用函数DrawArea::loadPixmap()来实现。
函数如下设计:void DrawArea::loadPixmap(){background.load(":/background/background.png");background=background.scaled(size());QPixmap pix(":/pattern/pattern.png");int num=pix.height()/PIX_SIZE;for(int i=1;i<num;++i){qreal y=PIX_SIZE*i;QPixmap p=pix.copy(0,y,PIX_SIZE,PIX_SIZE);pixmap.push_back(p);}}4.1.2 判段消掉图片如果两个图片一样,我们进行消块,并进行加分操作。
消块操作如下:if(hitTimer)killTimer(hitTimer);hitTimer =startTimer(INTERVAL_HIT_TIMER);++multiHit;emit hit(multiHit);lineTimer=startTimer(INTERVAL_LINE_TIMER);4.2 逻辑层设计僵局考虑判断是否已经进入死局,死局条件:在回合尚未结束的情况下遍历面板,无法找到一对可销图块则判定为死局。