按钮qt版连连看制作的实验报告

4399宠物连连看2.5  时间:2021-03-05  阅读:()

一 游戏概述

1. 1游戏简介

游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。 “连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。

游戏“连连看”是源自台湾的桌面小游戏 自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于200年取得了国家版权局的计算机软件著作权登记证书。

随着Fla 应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”,“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。

2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。 “连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。

1.2游戏功能

本次设计连连看主要是在原连连看对战的基础上设计挑战模式,具体的功能如下所述:

 游戏运行界面简单美观操作简单运行稳定;

 能够根据不同的等级模式播放不同的游戏背景音乐,包括操作方向

键、消行时的声音,音量由玩家操作控制;

 设计不同的游戏难度,当玩家达到一定的积分,可以进入相关难度的

等级;

玩家可直接操作界面上的相关按钮来控制游戏的开始、暂停、设置、退出等功能。

二 需求分析

2. 1开发的需求

2.  .  C+

C/+的哲学就不一样了,同一份程序代码,只要在该平台重新ompile成该平台的执行档就能在该平台执行若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GI盛行以后,由于各GU的L ary都不一样且没有标准,所以UI程序并没办法跨平台Comile因为各平台都有专属的Libr y。但是CC+优势就是执行速度快若能解决GU Libr y的问题,则跨平台即可解决。

除了I Lbray需要统一外,还得看该ib ry设计的好不好才行,L inu UI我没写过就不说了,若在Wnd o ws平台,B land 的C+ u ld 使用D lphi的CL L bra y,Microsft的 sa  C++可以用MF和 ET Frmewo rk,首先来看B  lad的C++Bui ler,它使用标准的I

C+语言开发,利用CL写出来的程序也算蛮漂亮的,执行速度很快比较麻烦的是 ild er当初为了缩短上市时间并没有设计自己的Lb ray而是藉用Dlp hi的L ib r  ,导致C+ ui ler在Com  le时,是先用Dlph的Comiler将VL compile成bjct fi  e后再用++Builder将你写的C程序opi  e成b ect f l,最后再用inker将所有的object起来,由于这都是IDE在做,对程序设计师似乎影响不大,但VL由于是lphi的Li ar所以若想深入研究VCL的sore code时则必须学Delphi的Pascal才行,否则看不懂CL sorce code,这也是很多人对C++ uildr却步的原因。

再来看M c roo ft的V ul +,MF用的是完整的ANS C+语言,所以语言部分不是问题,但若你看过用FC写的程序,你一定会惊讶为什么这么复杂,程序代码非常冗长不好看,且FC是有名的难学,若Visual C+搭配.NET Framwork,则无法使用NS

C++得用其.NET平台版本的C+/LI,相信这点很多人就有意见了,不过.NT Frwor由于设计的不错,所以写出来的程序相当精简漂亮,感觉和C++ uiler差不多,不过无论是C++Bi l  或isual C++开发的GU ,所开发出来的程序都无法跨平台,当然也无法跨平台ompile。

2. 1.  QT

(   QT的介绍

Qt 是一个多平台的C图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt 是完全面向对象的很容易扩展并且允许真正地组件编程。

自从 1  6年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。 Qt 也是流行的Lnux 桌面环境KDE 的基础,D是所有主要的inu发行版的一个标准组件。 Qt的特点有可移植性、易用性、执行速度快等特点。

(2 QT的优势

 XL支持。

 大量的开发文档

 支持D/D图形渲染,支持 OpnGL

 优良的跨平台特性,Qt支持下列操作系统: Microsoft Winos 9598, ic  sof indows NT, Ln  Sola   SuS PUX, D gi   l NX (SF 1, Tru ) ,Irix, r BS, BD/S, SCO IX, S30,QNX等等。 面向对象,t 的良好封装机制使得Q 的模块化程度非常高可重用性较好,对于用户开发来说是非常方便的。 t提供了一种称为 sial / lots的安全类型来替代a lback,这使得各个元件之间的协同工作变得十分简单。

 丰富的AP ,Q包括多达250个以上的++类,还提供基于模板的 cllec  ios, serialization  ile  O dv   e,  ectoryanagemet datetie类。甚至还包括正则表达式的处理功能。

2 2游戏功能需求

本次设计是在传统的连连看上设计实现对战的连连看,玩家通过达到一定的

积分来获得继续闯关的机会,还有机会开启神秘的应藏关,以此来增加游戏的可玩性。

游戏的基本规则:程序随机产生任意成对的图片当定点击开始游戏时,电脑根据时间参数随机生成固定的成对图片,游戏再次开始,玩家可通过鼠标上的左键,自由的点两张图片。如果点击两次时,两张图片相同,且满足程序的算法则这两张图片可消去。消去图片后游戏可给玩家加分,若在规定的时间内玩家没有消掉所有的图片则游戏失败。 由于是闯关模式,达到一定分数的玩家可以继续挑战新的游戏游戏的难度会相应增加,并且还增加了新玩法。具体的游戏功能如下:

游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景取自网上中的图片,体现了游戏的挑战性。

鼠标处理事件需求通过点击主窗体中相应的按钮,可以实现游戏的开始、暂停、结束,通过点击选项设置中相应的按钮,可设置声音的大小及方向键↓的功能。显示需求:当两次点击的图片相同且满足算法可以消去,当达到一定分数的时候,游戏会进入下一关,并有障碍了。

游戏闯关设计需求随着游戏的难度不同,玩法会发生改变,需要在游戏中设置障碍蒙手游戏。如果玩家能到达并完成最后一关,则玩家挑战成功,游戏结束。

最后游戏效果如下:

三 游戏总体设计

3 1总体设计

整体设计思想:进入游戏后有三个按钮可供玩家选择:开始游戏游戏设置,退出游戏在进入相应子菜单后也可返回到主菜单,每个菜单的具体设计将在后面介绍,以下是总体的游戏流程图。

3 2游戏核心模块的设计

. . 连连看所要求的是:

1.两个目标是相同的;

 两个目标之间连接线的折点不超过两个。 连接线由x轴和y轴的平行线组成 那么分析一下连接的情况可以看到一般分三种情况: (  直线相连 (2)一个折点; (3)两个折点。

可以发现,如果有折点,每个折点必定有且至少有一个坐标或者y是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。

所以设计思路就是:

假设目标点   ,p2,如果有两个折点分别为 1 ,z那么所要

进行的是

 如果验证p1 , p 直线连线,则连接成立

 搜索以p ,p的x,y方向四条直线(可能某两条直线会重合上

的有限点,每次取两点作为z1,2 ,验证 1到z /z1到z2/z2到

 是否都能直线相连 ,是则连接成立。

3.2.2 连连看消去算法实现

在检验两张图片能否消掉的时候,我们要让两张图片同时满足两个条件才行,就是两者配对并且连线成功。分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了)

(1)相邻

 )若不相邻的先在第一个按钮的同行找一个空按钮。   .找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。 2没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。 ).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没有的话路经就通了,可以消了.

(3)若失败后,再在第一个按钮的同列找一个空按钮。 1 .找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。 3 .没有的话再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。没有的话路经就通了,可以消了。

若以上三步都失败,说明这两个按钮不可以消去。

四 具体方案

. 1视图层设计

. 1 . 图形的产生

加载图块图片资源调用图片库用函数DrawArea  lo  P xmp(来

实现。

函数如下设计:v  d DawAra: : lodPixmap()

 backround. lad(" backgroun backgrund.png  ) ;

 backgron=bcground.  c l d   ize )  ;

QPixmap  ix(":/a ternpatte n.png" ;

 it num=pix.he  ght() PIIZE;

  r(i  1 i<num i 

real y=PIX_SIE*i ;

 QPixma p= ix. copy(0,y,PIX_SIZE,IXSIZE) 

 pixmp.push_b k(p) ;

}

}

4 1   判段消掉图片

如果两个图片一样,我们进行消块,并进行加分操作。消块操作如下:if(i Timr)

 kill er hitTmer ;

itTimr =strtTmr(INAL_HIT_TIMER) ;

 +multiHi  ;

m t hit(ult Hi  ) l neimer= tartTmer(INERVLIE_TMR) ;

4. 逻辑层设计

僵局考虑

判断是否已经进入死局,死局条件:

在回合尚未结束的情况下遍历面板,无法找到一对可销图块则判定为死局。若找到一对可销图块,则将其记录为hinA和hit,以供hint )函数利用。设计代码如下:b l   wAe : : isDe  (

int i, j,x,yif(!pa Left)

eturn t ue;

or(i   <xMax;++i) {for j= ;j<Max;++j) {if(boar [i]    ) {

 r = ;xxMax;++x) {if(i) yj ;

  se y= ;for  ; <yMa ;++y) i  oard[x] []==board[i] j] ) {if(isosLinkabl  (i, j,x,y ) //如果消块成功,那么这里就变成了0hntA. i ;hntA y=jhintB.x=x;hintB. =y;

et   alse;

}

}

}

}

 trn re

4 3其它相关技术的实现

键盘事件响应

连连看是通过鼠标左键来控制游戏的运行,那么是具体如何实现的呢这就需要用到键盘的左击事件,通过响应鼠标的按下事件来实现。玩家通过鼠标左键来控制图片的点击。具体代码实现:通过重新实现虚函数GameWinow :keyessven QeyE nt *een 来响应相应的键盘按键事件。

五 游戏的测试

5.1选项按钮的功能测试

鲸云10美元,香港BGPRM 1核 1G 10Mbps峰值带宽 1TB流量,江西CN2-NAT 1核 512MB内存 100M带宽 ,

WHloud Official Notice(鲸云官方通知)(鲸落 梦之终章)]WHloud RouMu Cloud Hosting若木产品线云主机-香港节点上新预售本次线路均为电信CN2 GIA+移动联通BGP,此机型为正常常规机,建站推荐。本次预售定为国庆后开通,据销售状况决定,照以往经验或有咕咕的可能性,但是大多等待时间不长。均赠送2个快照 2个备份,1个默认ipv4官方网站:https:/...

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

4399宠物连连看2.5为你推荐
工信部约谈电信工信部投诉电信 电信会被罚款吗特朗普取消访问丹麦特朗普访华后还会去那里?杨紫别祝我生日快乐祝我生日快乐的歌词18comic.fun贴吧经常有人说A站B站,是什么意思啊?比肩工场命比肩多 是什么意思啊?陈嘉垣马德钟狼吻案事件是怎么回事xyq.163.cbg.com梦幻CBG的网站是什么。同一ip网站如何用不同的IP同时登陆一个网站seo优化工具seo优化软件有哪些?抓站工具抓鸡要什么工具?
域名大全 河北服务器租用 免费域名空间申请 免费域名申请 怎么申请域名 187邮箱 x3220 国内永久免费云服务器 日志分析软件 鲜果阅读 远程登陆工具 元旦促销 坐公交投2700元 中国电信测网速 免费网页申请 如何注册阿里云邮箱 个人免费主页 raid10 国外免费云空间 云服务是什么意思 更多