羊了个羊通关分析

最近有一个小游戏“羊了个羊”,突然爆火。它的游戏规则很简单:把堆积在一起的牌从上到下点到临时卡牌槽里,凑齐一样的三张就能消掉,如果全部卡牌都消掉游戏就通关了。临时卡槽一共有7个位置,如果位置都满了,游戏就输了。这个游戏第一关非常简单,就像1+1=2一样,简直就是我我们的智商按在地上摩擦的那种。第二关难度飙升,直接变成考研。尽管通过分享游戏或者看广告可以有一些辅助道具,但是还是有许多人玩了上百局都没有通关。有小朋友就问我说:为什么这个游戏这么难玩?它通关的概率到底有多大呢?经过我三四天的研究,今天我就把我的研究成果向大家汇报一下。我们可以发现这个游戏的设计大约可以分为三如果卡牌一共有15种,每一种有18张,那么应该设计15x18=270个卡位。每一卡位都有一组坐标(xi,yi,zi),其中xi和yi表示在桌面上的位置,zi表示堆叠的层数, 角标i从1到270。其次:对卡牌进行洗牌。设计15种不同的卡牌,每种卡牌18张,调用“乱序”函数,随机打乱270张卡的顺序。最后:按顺序把每一张卡放进对应的卡位里。因为“卡位”和“牌”都已经有了顺序,只要把序号相同的牌放在相应的卡位上,就完成游戏的初始化。游戏初始化完成后,在这个过程中,“设计卡位”的步骤是人工完成的,程序员人为的设定好每一个卡的位置,并且每一天更换一次。所以,你会发现卡的排列非常对称,而且在每一天中固定不变,这就是“每日一关”的含义。而“洗牌”的过程是程序随机完成的,所以如果你在一天中打很多局,卡牌的位置不会变,但是每个位置上的卡牌种类是变化的。通过分析程序设计逻辑,我们会发现:游戏设计者并没有人为的设置障碍,让玩家无法通关。但是因为它的“随机洗牌“,造成许多关卡本身就是无解的。而且,游戏能够通关的概率有多大,和程序员人工设计卡位的方式很有关系。可以想象:如果程序员把所有的卡平铺在桌面上,那程序100%是有解的。但是如果把所有卡摞成一列,那有解的可能性就微乎其微了。

举报