此文档主要用于一个开发同学尝试学习描述一个产品的基本设计。也许工程师都应该有类似能力。

反推的基础,目前是自己玩过的一些关卡和youtube上的一些关卡通关视频,主要是前120关。(120关后面应该是最新版本才出)。

1 消除块,棋子

颜色:青,黄,蓝,粉,褐,灰,6种,表现为小动物。

有些时候单局内只出现5种颜色的棋子。

如果消除的(N > 3)个棋子,棋盘会出现帽子(横,竖,球3种)棋子,晕眼棋子。如下图:中间有各种颜色的棋子,而且有2个晕眼棋子,横帽棋子,球帽棋子。

其他棋盘中的棋子还包括,箱子,血瓶,等,但其不能参与消除,后面在棋盘一节补充说明。。

血瓶,箱子,也算一种棋子。

2 棋盘的布局

目前能看到的录像和关卡还在前面120关,所以无法看到所有的,所以并不完整。

棋盘的布局为8*8,64个格子放棋子。(Candy Crush的消除区域比这个大,是9*9的区域)

镂空的棋盘格子,没有棋子,直接看到背景。这个位置不能操作。但帽子棋子的消除效果,可以穿越这个位置。

棋盘上放有棋子,棋子说明见第二章。

在棋盘的上面,并不是最顶层的格子都有棋子掉落,(比如某些顶层有镂空就不会掉落棋子)。比如下图图红线下面区域都是掉落的。(注意由于镂空同一列有2个掉落位置)

但如下图,蓝线下面的顶层区域并不会掉落棋子,而是从其他行斜向补充棋子,所以可以掉落的位置这必须也是一种可配置选项。

在棋盘的下面,也不是所有最底层的点血瓶都可以掉下去,可以掉的位置会有在棋盘上有向下的箭头标示。上图就有。

还有一种模式就是虫洞的掉落方式,如下图,下面是Anipang2 111关卡的抓图,棋子是从上面区域的虫洞掉落的,如果红色箭头所示,每个洞口都一一对应,(注意中间还有一个交叉对应,不知道是不是bug,呵呵),另外要注意的是,其红色区域也是会掉落棋子。

3 消除规则:

3.1 消除棋子

滑动3个横,3个竖就可以消除,消失后上部会掉落新的掉落块(掉落规则另外一节)。如下图:

如果一次消除了4个棋子,出现一个相同颜色的横消帽子或者竖消帽子(就是带帽子的小动物)棋子,具体出现横消还是竖消和消除的内容无关,随机出现(就是竖着消除4个棋子也可能出现横消的帽子棋子)。横消帽子或者竖消帽子出现的位置为你移动交换的位置,如下图红色部分,如果下面没有消除快,横消帽子或者竖消帽子也会向下掉落,比如竖着消除的例子,帽子出现在红色的位置,下面2个位置被消除掉了,所以红色消除的帽子会掉落到橙色的位置上。

如果一次消除5个消除块,而且消除的方式如下(注意这写情况其实都有4个方向),红色为你移入的棋子,在红色位置会出现一个球状消除的帽子棋子。

如果一次消除5个消除块,而且消除的方式如下,会出现一个晕眼棋子,

如果有同时消除,更多的消除优先,如果同时消除了3个竖,4个横,算4个消除。这个就要求在消除判断的时候,作为一种方向的判断后,继续做另外一个方向的判断,然后根据长的判断。如下图。

当消除掉横消帽子或者竖消帽子棋子后(消除规则和前面一样),横帽棋子的位置会消除棋盘中当前行的所有棋子,竖帽棋子的位置会消除棋盘中当前列的所有棋子(准确应该说,记录消除一次)。如果下图,红色位置的竖消(横消)被消除后,白色一行都被记录消除一次。

两个横消或者竖消帽子棋子(横横, 竖竖和横竖)两两相碰(一个划向另外一个),也可以消除而且会在滑向的点做一个十字消除,此行和此列的棋子都被消除一次,如图。

当球帽棋子被消除后,会消除一个球状区域。直径为5的一个区域。

横消或者竖消帽子棋子和球帽棋子相碰后,会出现增益效果的消除。做一个3*3的十字消除。

两个球帽棋子相碰后,增益效果是消灭一个大球,如下图,橙色的棋子滑向红色的棋子,以红色的棋子,为中心,直径为9的一个区域(如下图)。消灭周围的棋子。注意为了表现的更加清楚,我用了非8*8的棋盘示意。

当晕眼棋子和其他颜色棋子相碰后,此种颜色的所有棋子都被消除。

当晕眼棋子和横帽棋子,或者竖帽棋子相碰后,所有的此种颜色的棋子,都做横消或者竖消,具体是横还是竖消除随机。执行(表现)顺序是,最开始的帽子棋子和晕眼消除(注意只消除他们两个呀),然后其他相同颜色的棋子全部变成横帽,或者竖帽,然后从上至下,从左至右的横帽或者竖帽开始消除掉,整行或者整列都消除掉,全部消除完成后再开始掉落。如下图:

当晕眼棋子和球帽棋子相碰后,所有的此种颜色的棋子,都做球状消除,执行(表现)顺序是,最开始的球帽棋子和晕眼消除(注意只消除他们两个呀),然后其他相同颜色的棋子全部变成球帽棋子,然后所有的球帽棋子从上至下,从左至右球帽做球状区域消,全部消除完成后再开始掉落。如下图,

两个晕眼棋子相碰后,也会引发增益消除。全部所有的颜色方面都会轮流消失一次。执行(表现)顺序是,两个晕眼棋子消失,一种颜色的棋子被选中,全部消失,然后选中另外一种颜色消除,直至所有的颜色全部被选择。消除过程中如果棋盘中有带帽的棋子(横竖球),这些带帽棋子按照效果消除掉,如果棋盘中还有晕眼棋子,晕眼棋子不会被消除掉。全部消除完成后,上面的方面再掉落。

连带消除,如果消除的区域原有的带帽棋子,晕眼棋子会释放效果自动消除,带帽棋子就是按照,横,竖,球3种方式消除,而晕眼棋子被消除后,自动随机选择一个颜色,对这个颜色的所有棋子进行消除。

消除块会产生分数,在消除的过程中直接用动画展现,分数规则不在此反推重点。

如果棋子移动后,不能消除,棋子退回原来的位置。

棋子消除后,上面的棋子向下掉落。

3.2 箱子

放箱子的格子,箱子的周围(上下左右)棋子消除了,箱子爆炸,格子空出,棋子可以掉落到这个位置(注意是可以掉落,但未必一定掉落物品填补),箱子没有消除前,这个格子不能操作。(箱子爆炸也可以考虑N次周边被消除才爆炸)

3.3 重排(棋子都不能消除时)

所有棋子都不能消除是,要提示用户,进行棋子重新排布。Max这个地方总结的比较细致。

重新排布的规则:

已经锁定的棋子位置和颜色不变化,血瓶位置不变化,箱子不变化。

帽子棋子,晕眼棋子的的颜色不变化,但位置可以变化。

普通棋子的各种颜色的数量会变化,位置也发生变化。

变化后,不能有能直接消除棋子,但也必须能有移动后消除一次的机会。

3.4 棋子的背景和前景

棋子的背景,可以是蓝冰,蓝天白雪,后面为了方面对比,就叫蓝冰(其实我觉得像蓝天白云)。或者白雪,一种情况是蓝冰,消除这个位置一次,蓝冰消失可以看到棋盘,一种情况是是就是白雪,这个位置消除一次,变成蓝冰,必须再次消除才能看见棋盘,就是这个白雪为背景的格子必须发生2次消除才能看到棋盘。注意,白雪或者蓝冰上面没有棋子时(比如无法掉落的棋子的时候),一个格子如果没有棋子被消除,白雪或者蓝冰不会消失。

棋盘棋子的前景,有锁定,这个块被消除一次后,锁定才解除,锁定解除的时候,这个块不被消除掉。被锁定的棋子不能移动。(锁定也可以考虑N次消除才解锁)。

如下图,此关卡就有蓝冰,锁定,箱子。

3.5 血瓶

血瓶可能在棋盘中默认开局就有,也会掉落下来的。(Candy Crush有多种掉落水果,坚果)

血瓶在其他地方没有任何办法消除。

血瓶必须消除掉最底层有下落标志的格子才能掉落,。

3.6 Candy Crush

Candy Crush的棋盘设计比这个要复杂很多。还有履带,巧克力,定时(步数)炸弹等。

4 棋子的掉落规则

如果棋盘格子是空的(如果没有入口另说),上面的棋子就会掉落填充这个区域。

4.1 掉落规则

Anipang2有时候开局会有一些空区,再滑动第一次后开始掉落。这个也是要在关卡配置的。

Anipang2是一个的掉落是一个看上去怪怪的深度优先算法。

比如只有一个开口的区域,其他是木箱,那么掉落顺序是如下的。掉落顺序如下,有兴趣研究的可以看看Anipang43关。注意:每一个位置只会向自己的下,左,右,3个位置滑动掉落。

先贴一个简单情况的掉落顺序,假设白色是空区。

再说一个复杂的情况,如下图:

先向下,1,和2叠加,3下落时(到9号位置)当发现如果是最后一个空位了,检查左右是否可以填充。

然后向左掉落(好像也见过先向右的,不知道是否有随机),当3掉落是发现右边是空的,继续向右侧掉落,3,4,5掉落在右侧。先填充位置3,方块4在位置5会发现又是此列最高的位置,此时,发现左边还有空位,就填充左边,也就是4,然后填充5.

然后向右掉落,6,7,8掉落在右侧,规则和左边类似。

最后9封住掉落口,

注意,如果如果有些位置是空的,而掉落规则无法填充,那么就是空着,就不填充。

我对这个算法有点微词,主要是对左右滑动下落的点判断有点怪(比如2左右下面有空位,但2不想左右下落)。我觉得是否改成这样,反而好理解一些。一个点如果左右有空位就先向左右掉落,

另外,在发生很多块的消除后,Anipang2的棋子掉落顺序基本是所有的悬空棋子先下落,棋盘上面再开始掉落棋子方式。但有些地方是有点奇怪的,有一些位置的棋子会自己向左右滑落,不知道是否其中存在一些增加体验的随机算法。

如果同时一行有2个空格掉落,Anipang的掉落是这样的。是并行掉落的,掉落动画方式的感觉是有顺序的,但是否真有顺序?从掉落动画看第一行掉落的1格后,第二行就开始掉落。从这种方式上感觉,两行之间应该也不发送干扰,但存疑。

4.2 掉落后的消除

Anipang2一般都是全部消除后,再掉落,但掉落后,棋子已经全部布局,如果仍然有可以消除的棋子(比如3连,4连,5连)。还会进一部分消除掉这些棋子(注意,不是边掉落边删除,是全部掉落后,才开始自动消除这些部分)。然后再掉落,直至所有的棋盘内所有的棋子不能直接消除。

掉落后的消除也可以生成带帽的棋子或者晕眼的棋子。这样就会有一个问题,生成的带帽的棋子的位置放在什么地方?Max发现的规律生成的棋子(戴帽或者晕眼)是在被消除的区域随机出现位置。

如果掉落形成可以多次消除的棋盘如何处理的问题?这个Max见过。如下,注意这种情况只会在掉落出现,Anipang2对这种情况判断了出现一个晕眼,一个球帽棋子。我觉得这个判断逻辑有点问题。出现一个晕眼是可以理解的。但已经晕眼应该就占据了5个棋子。为啥还会出现一个球帽?存疑。这个算法有点头大。建议简化成计算出现一个判定后,就将其占用的消除物棋子视为以无效(已经处理过)?

5 单局结束后

5.1 胜利后

单局结束后,如果胜利后,棋盘剩下的带帽棋子,晕眼棋子会释放效果自动消除,带帽棋子就是按照,横,竖,球3种方式消除,而晕眼棋子被消除后,自动随机选择一个颜色,对这个颜色的所有棋子进行消除。(和连带消除的效果类似).

上面的步骤完成后,发生掉落补充所有的空位,掉落过程处理和正常掉落过程一样,如果掉落后还有可以消除的棋子,再次消除,直至补充完毕。

然后,如果胜利的规则是N步完成,胜利条件已经达到,但还剩余M步,会出现小兔子用吹泡泡消除一部分棋子的奖励,每个泡泡消除一个棋子。但消除的个数和剩余的个数不是相等关系,比如:如果剩余1次滑动步数,会消除3个棋子。其也称为Lastpang效果。Max这个地方写的很细致。

(而Candy Clush 是采用小鱼的帮主消除的方式。)

上面的步骤完成后,发生掉落补充所有的空位,掉落过程处理和正常掉落过程一样,如果掉落后还有可以消除的棋子,再次消除,直至补充完毕。

5.2 失败后

单局结束后,如果失败后,会弹出面板,确认你是否购买增加滑动次数的道具。可以参考单局失败结束道具一节的说明。

如果购买了道具后,可以继续移动N步。

充值的钻石都测试道具去了,无法测试如果再次失败是否还可以再次购买增加移动步数。建议一开始考虑可以3次,或者干脆无限算了,当有钱的大爷爽。

6 道具

6.1 开局带入道具,

目前有3中带入道具

【金币】增加滑动次数3次道具。

【钻石】开局带入一个晕眼棋子的道具。

【钻石】开局带入一个带帽棋子的道具,棋子到底是球,横,竖帽棋子,随机。(我见过横,竖帽棋子,没有见过球,待确认)

6.2 游戏中道具

游戏中也有三个道具

【钻石】把一个棋子消失掉。

【钻石】把一个棋子变成横或者竖帽棋子,在操作的过程可以选择。

【钻石】把一个棋子和另外一个棋子发送交互。

上面的各种开局后的图都有相应的交互方式图片。

6.3 单局失败结束道具

前面也说过了,单局失败后,会弹出一个面板。确认你是否付出钻石增加5步滑动步数。

7 通关地图,以及好友成绩排行榜

Anipang2是以20关为基础做一个集合,打通20关后需要钻石购买通关或者向好友索要3把钥匙打开下一个关卡集合。

打开关卡集合有何一些游戏故事背景的对话,我看不懂韩文,嗦嘎。没办法。

在通关地图上,你可以看到自己好友达到的最高关卡数,好友头像就飘扬在其通关的最高关卡上。也算一目了然。

如果没有打开的关卡集合用云雾遮挡。

点击一个任何关卡,你可以打开关卡的介绍(关卡的截图),你的成绩排名。其显示方法如下图:

注意这儿的排名只显示有3个人成绩,如果你的成绩不是第一,第二,那么你永远在第3个位置,前面显示你前面2位的成绩,点击那个按钮可以查看前面分页人的成绩。

8 关卡编辑器的配置

8.1 关卡的棋盘

关卡需要的棋子颜色数量。(有5,有6)

关卡的布局,包括镂空,棋子的前景,背景。

血瓶出现的时机,消除多少块以后掉落。

棋盘大小?(只有8*8?)

棋盘上面可以掉落棋子的位置,

棋盘上的棋子布局(有些位置要可以为空,在滑动第一次后掉落),有些位置要写死,(引导关),

棋子生成的随机规则,(是否要考虑几套预案,一些不同的难度等级,比如普通用户的,如果用户失败到一定次数的,付费用户是否降低难度等)

棋盘上的虫洞(冲动包括上下,以及对应编号关系)的位置,

关卡是否可以带入道具?部分关卡是不能带入道具的。

棋盘下面血瓶可以掉落的位置。

8.2 关卡的限制

关卡的可以滑动的步数

关卡的时间,限定时间完成胜利条件,(Candy Crush 有,但Anipang2没有见到)

8.3 胜利的条件

达到足够的分数。

消除所有的(一定数量)蓝冰,白雪

所有的(一定数量)血瓶掉落到最下面,

可以考虑的还有,消除所有箱子,所有锁,消除特殊颜色的道具

8.4 失败条件

目前无

8.5 Candy Crush

Candy Crush的设计里面还有很多中,甚至有一些失败条件,包括某种颜色得的消除数量,定时炸弹在一定次数没有消除爆炸等,目前在Anipang2中没有。

【本文作者是雁渡寒潭,本着自由的精神,你可以在无盈利的情况完整转载此文 档,转载时请附上BLOG链接:http://www.cnblogs.com/fullsail/,否则每字一元,每图一百不讲价。对Baidu文库和360doc加价一倍】

Anipang2反推文档的更多相关文章

  1. SharePoint 2010 文档管理之文档推送

    前言:文档推送功能,不是一个复杂的功能,我们这里简单的应用了Ribbon定制.Js使用.对象模型推送(Server端),下面,我们来简单介绍下文档推送功能吧. 一. 功能设计: 文档推送功能,主要就是 ...

  2. 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)

    ☆ 写在前面 之前答应大家的毕业答辩之后把所有文档贡献出来,现在答辩已过,LZ信守承诺,把所有文档开源到了GitHub(这个地址包含所有的代码和文档以及PPT,外层为简单的代码).还望喜欢的朋友们,不 ...

  3. hexo新建md文档推送到blog出错

    1. git错误提示 $ hexo g INFO Start processing FATAL Something's wrong. Maybe you can find the solution h ...

  4. [转]产品需求文档(PRD)的写作

    产品需求对产品研发而言非常重要,写不好需求,后面的一切工作流程与活动都会受到影响.转载一篇文章,关于产品需求文档写作方面的,如下: 本文摘自(一个挺棒的医学方面专家):http://www.cnblo ...

  5. 前端javascript规范文档 (http://www.xuanfengge.com/category/web)

    说明:本文档为前端JS规范 一.规范目的 为提高团队协作效率,便于前端后期优化维护,输出高质量的文档. 二.基本准则 符合web标准,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序, ...

  6. Vert.x Core 文档手册

    Vert.x Core 文档手册 中英对照表 Client:客户端 Server:服务器 Primitive:基本(描述类型) Writing:编写(有些地方译为开发) Fluent:流式的 Reac ...

  7. 一文搭建自己博客/文档系统:搭建,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 第一部分 - 博客/文档系统的搭建 搭建博客有很多选择,平台性的比如: 知名的CSDN, 博客园, 知乎,简 ...

  8. selenium浏览器自动化测试框架文档(修正版)

    写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...

  9. bootstrap帮助文档

    概览 深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快.更强壮的最佳实践. HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属 ...

随机推荐

  1. NIO的Selector

    参考自 Java NIO系列教程(六) Selector Java-NIO-Selector java.nio.channels.Selector NIO新功能Top 10(下) 出发点: 如何管理多 ...

  2. ValueError: Attempted relative import in non-package

    执行:python deom/scripts/populate.py ValueError: Attempted relative import in non-package solve:python ...

  3. console中应用MFC类的方法

    1.添加#include <afx.h>或者<afxwin.h> 这时会报错1>c:\program files\microsoft visual studio 8\vc ...

  4. python脚本实例002- 利用requests库实现应用登录

    #! /usr/bin/python # coding:utf-8 #导入requests库 import requests #获取会话 s = requests.session() #创建登录数据 ...

  5. 中断服务程序不用interrupt关键字也可实现中断,该关键字是否必须?

    2013-06-20 11:13:35 中断服务程序不用interrupt关键字也可实现中断,该关键字是否必须? 使用tools->pin connect,将INT5与pin.txt关联,模拟外 ...

  6. iOS(Swift) TextField限制输入文本的长度(不是字数)

    最近做项目有一个特殊需求,就是需要限制一个TextField的输入文本的长度在一定范围内(注意,不是字数),上网查了一圈没有找到类似文章,这里把我的方法写进来,mark一下: 1.对TextField ...

  7. ~/.ctag的作用与配置

    里边可以有基本配置和语言正则表达式解析的参数 # Basic options --recurse=yes --tag-relative=yes --exclude=.git # Regex for C ...

  8. android 电容屏(二):驱动调试之基本概念篇

    平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博 ...

  9. Android开发之实用小知识点汇总-1

    1.去掉android屏幕中的actionbar: this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏 //这个是全屏幕显示的代码 ...

  10. IDE模式下安装Windows 7强行改回ACHI后不断重启的解决方法

    问题描述:用U盘启动进PE装的Win7,由于PE认不出硬盘,只好进BIOS设置硬盘模式为IDE才安装上.结果安装完系统后,在BIOS中强行修改硬盘模式为ACHI模式后,Win7开机不断重启,进不了系统 ...