连连看(QT版)设计说明文档

一，需求
根据原连连看3用户的使用要求，初步实现单人模式游戏。

二，游戏基本规则
在主窗口矩形网格区域分布的数张卡片中找到两张图形相同的卡片，如果这两张卡片间能够用不超过两次直角转折的线段(也就是说最多三段)连通，则当玩家用鼠标左键依次点击这两张（不分先后）卡片时可以消去这两张卡片，并得到一定的分数。如此反复，直到所有卡片全部被消去。

三，游戏功能设计
1、消牌
点选符合消去条件的两张卡片后，在这两张卡片间画一条表示连接的红线(符合消牌规则的不超过两次直角转折的线段)同时高亮显示这两张卡片一定的时间后(默认设置125毫秒)擦除连线并消去这两张卡片，同时奖励一定的分数及时间。
2、关卡
游戏设计有过关模式，一共11关。
3、消牌模式
所谓消牌模式是指成功消去两张卡片时，依据关卡不同，移动剩余卡片排列位置的规则。比如“向下”模式，消去两张卡片后会将其上方可能存在的卡片依次向下移动填补消牌后出现的空档。每关的消牌模式各不相同，依次是：不变、向下、向左、上下分离、左右分离、上下集中、左右集中、上左下右、左下右上、向外扩散以及向内集中,共计11种。
4、时间限制
如果在限定时间内没能消去所有卡片则游戏判负，否则进入下一关或是游戏胜利。
5、提示点数
如果提示点数大于0，游戏中可以寻求提示，会看到当前某两张符合消去条件的卡片高亮显示并在它们之间画出红色连线，同时扣去一点提示点数。
进入下一关时会奖励一点提示点数。
6、洗牌点数
可能会出现这样一种情况：还没到时间限制，但是已经没有任何符合消牌规则的卡片，这时如果洗牌点数大于0，卡片将会随机交换位置(注意是交换位置而不是随机分布)，同时扣去一点洗牌点数，称为洗牌。洗牌后保证至少存在一对可以消去的卡片。如果出现不能消牌的情况并且洗牌点数已经为0，则游戏以失败结束。
如果洗牌点数大于0，游戏中可以主动洗牌，同时扣去一点洗牌点数。
进入下一关时会奖励一点洗牌点数。
7、分数
成功消去卡片时按照关卡不同得到相应分数，成功进入下一关时根据剩余游戏时间、提示点数、洗牌点数得到一定的分数奖励，以及下面提到的随机奖励也可能增加或是减少游戏得分。游戏结束(包括中途失败或是完成所有关卡)时依据这个分数判断能否进入游戏排行榜。
8、随机奖励
成功消去卡片时随机触发触发奖励或是惩罚事件，如下：
增加1-2点/减少1点洗牌点数；
增加1-3点/减少1点提示点数；
增加/减少7秒钟时间限制；
增加/减少2500分（score）。
一共11种，根据奖惩程度设计大小不等的几率。
9、游戏难度
决定起始卡片的数量，洗牌、提示点数、时间限制等初始化条件以及消去卡片时的奖励时间等参数的初始数值。分easy、normal、hard三种难度，各难度卡片数量依次为12X7、14X8、16X9。
10、游戏排行榜(名人堂)
游戏将保留每个难度以游戏得分排序的前十名游戏记录供玩家自勉或是向他人炫耀。
11、存盘或读档
游戏提供一个存盘文件允许玩家保存一个游戏状态，并且随时可以读取该存盘文件恢复存盘时的游戏状态。
12、撤消及重做
游戏允许撤消之前的消牌动作直至每关初始状态。作为惩罚，每次撤消操作需要扣去500分，因此至少要先得500分才能执行撤消操作。
游戏允许重做刚刚撤消的动作，也就是说正常的点选消牌将清空重做记录及重置撤消记录。重做不扣分。
13、暂停
游戏过程中允许暂停以方便玩家。暂停时需要隐藏卡片并且限制游戏功能性的某些操作。

四，玩家评估
在限定的时间内完成每一关，成功通过全部11关才算胜利；
任何时候达到时间限制，或者是出现不能消牌的情况却已用完了所有的洗牌点数，则游戏以失败结束；
不论失败或是胜利都可以以当前得分判断能否进入游戏的排行榜。

五，实现该游戏的基本算法
1、必须保证每种图形的卡片成对出现；
2、洗牌的算法实现；
3、判断点选的卡片之间是否符合消牌规则的路径搜索算法；
4、依据第3点的路径搜索提供提示的算法；
5、判断是否已经没有可以消除的卡片，以及是否达到时间限制，判断是否达到游戏结束或进入下一关的条件；
6、各种消牌模式中的10种需要实现移动卡片位置的算法；
7、游戏排行榜的实现；
8、撤消及重做的实现；
9、游戏存盘及读档的实现；
10、随机奖励的实现。

六，游戏快捷键的设计
F5    提示
F6    洗牌
F7    暂停
CTRL+N    新建游戏
CTRL+Q    退出游戏
CTRL+S    保存
CTRL+L    读档
CTRL+Z    撤消
CTRL+SHIFT+Z    重做

七，游戏附加功能
1、允许更换背景色或背景图；
2、可以选择是否显示工具栏；

八，游戏玩家使用说明
当初次启动游戏时，游戏的使用模式以及游戏设置都是默认的初级玩家设置，玩家可以通过点击设置菜单下的更换背景来设置个性化背景，也可以通过设置菜单下的级别来设置玩家希望的游戏级别，游戏现已实现的游戏级别有3种，分别是容易，适中，困难。如果玩家想通过快快捷键来操作游戏是可以通过设置菜单设置下的显示工具栏选项来隐藏工具栏，当游戏设置完后就可以开始游戏。当然玩家也可以动态的设置这些选项。
在操作游戏的过程中，为了使玩家能够按照游戏的固有逻辑和游戏的操作习惯来操作游戏，游戏程序会根据玩家的当前状态来自动设置可选或禁选选项以及可行或不可行操作。
