• 2048 Puzzle游戏攻略


    2048 Puzzle这是目前手机游戏的很火。

    在地铁上经常看到的人玩这个游戏。

    首先,简介2048 Puzzle游戏。

    游戏界面是4X4广场格,每一方格可以放置在数字。

    有四种移动数字的方法,向左、向右、向上、向下。

    当向一个方向移动时,全部的数字都会向这个方向移动。直到前面到了边界,或者有数字挡住。

    而且在移动方向。相连方格中同样的数字将会被合并。

    每次移动后,会随机在空白方格中出现2或者4数字,也有可能不出现。

    成功条件:合出数字2048。

    失败条件:全部方格中都有数字,而且不管採用哪一种方向移动,都无法合并数字(没有相连格子中数字是一样的)。也就是四个方向都给堵死。

    2048

    攻略是依照规则说明保持以下四个规则。而且避免出现接下来会提到的两个异常形。

    规则1)在左上角方格中总是放置最大的数字,而且在第一列中上面方格中的数字总是不比以下的数字小。

    (这个规则是必需要遵守的,另外注意这是镜像对称了,为了表述方便,我就直接以左上角为例了,以下的规则描写叙述是相同)

    规则2)第一列中的全部方格都有数字。(这个规则可能不能总是保持。在游戏过程中,有可能会被破坏。但要尽快恢复这个规则)

    如形1和形2。

    当中形1是满足规则1和规则2。而形2仅仅满足规则1。

    形 1

    512

    32

       

    256

    16

       

    128

    8

       

    68

       

    2

    形 2

    512

    32

       

    256

    16

       

    128

    8

       
         

    2

    保持规则1和2的方法是在游戏中总是保持仅仅向左。向上和向下移动,而不向右移动。

    规则3)尽量控制第二列的数字的大小。理想情况是第二列的全部数字都比第一列的小;最坏情况是第二列的数字出现比第一列第二排数字大的数字。

    (这个不是必须。可是假设尽量保持这个规则,能够有利于第一列数字的增长)

    如形3,在第二列出现了256和64。

    将会阻碍第一列数字的增长。

    形 3

    512

    32

       

    32

    64

       

    16

    8

       

    8

    256 

     

    2

    保持规则3的方法是优先向第一列第四行方格中合并数字,而且假设第二列中数字有机会合并到第一列,则进行合并(注意要保持规则1)。

    这个仅仅是一个指导方案,游戏中会出现非常多情况。有可能有更好的选择,还须要随机应变。

    如形4,先将第二列第四行数字合并到第一列第四行。

    形 4

    512

    2

       

    32

    16

       

    16

    8

       

     2

    2

     

    2

    如形5。将第二列第三行数字合并第一列第三行数字。

    形 5

    512

    2

       

    32

    2

       

    16

    16

       

    2

    8

     

    2

    规则4)在第四列不要出现大于等于16数字,在第三列不要出现大于等于32的数字。

    (这个规则不是必须。可是能够有效防止被堵死)。

    如形6。违反了规则4,我们仅仅能合并左下角的两个2了。

    形 6

    512

    4

    32 2

    64

    2

    16 8

    32

    16

    64 16

    2

    8

    2

    2

    两种异常形,一个我称为执行形。还有一个称为无奈形。

    1)运气形

    除了向下以外,其他的方向都给堵死了。

    而且在左边仅仅有三个方格有数字(不满足规则2)。

    如形7。

    形 7

    512

    4

    8

    2

    32

    2

       

    16

         
           

    假设运气好。出现的2或者4数字不在左上角,则能够恢复规则1和2(这个也是我称它为执行形的原因)。如形8,是向下移动后运气不好。2出如今左上角。无法恢复规则1。

    形 8

    2

         

    512

         

    32

    4

       

    16

    2

    8

    2

    2)无奈型

    除了向右以外,其他的方法都给堵死了。

    一旦向右移动。假设出现数字2或者4,必定在左边出现。那么再想通过向左移动恢复规则1是非常难的(仅仅有一种非常小概率会恢复。但我们无法指望这个发生,全部我称它为无奈形)。如形9。就是这样的形,向左移动后变成形10,之后就无法保持规则1。

    形 9

    1024

    8

       

    512

    64

       

    32

    4

       

    16

    8

       

    形 10

       

    1024

    8

    2

     

    512

    64

       

    32

    4

       

    16

    8

    在我们游戏中要尽量避免出现这两种形,尤其是无奈形。一旦发生就非常难恢复规则1。我想到的一个避免方式是感觉要出现这两种形,能够上下移动数次,多出现几个2和4数字,来避免出现这这两种异常形。

    为什么要满足规则1和规则2

    分析这个游戏。能够发现出现的数字都是2的n次幂。每次数字增长是幂次加1。如形11。左边一排有上到下依次是2a,2b,2c,2d。满足规则1说明,a>=b>=c>=d。

    形 11

    2a

         

    2b

         

    2c

         

    2d 

         

    因为每次数字的增长是幂次加1。所以每个数字增长会经过方格中比它大的不论什么数字。所以假设我们保持规则1,就有机会在左边一排依次由下向上合并数字。

    假设我们没有能保持规则1,那么就会添加游戏的难度,甚至终于导致四个方向都给堵死。如形12,不满足规则1 ,第一列第二行中的数字u是最大的数字512。第一列第一行中数字v是2。第一列第三行中数字w是256。假设数字u总是最大的数字。那么数字u和v无论以后怎样变化,是非常难合并在一起。就是巧合地合并在一起,但又会出现另外的两个数字被u给分隔。

    形 12

    2

    8

       

    512

    16

       

    256

         

    32

       

    2

    有一个非常特别的形在这讨论一下。如形13。两个512被1024给分隔开。假设没有新的数字2或者4出现。这个两个数字512是无法合并在一起。就算有2和4出现,也非常难非常巧合地合并在一起。尽管两个512非常难合并成1024, 可是形5还是有可能成功的,由于游戏还会不停在移动过程中出现数字2或者4,所以能够合出第三个512和之前的512合并,并终于和1024合并成2048。

    形 13

    512

         

    1024

         

    512

         
           

    另外保持规则1将有利于规则4的保持。保持规则2能够在上下移动时,第一列不发生变化。


    最后要说明的是在游戏过程中假设违反了规则1。不代表不能成功,只是更加困难。假设我们有一个更好的办法,一起分享。

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    消息中间件三、RabbitMQ学习一
    消息队列学习一 概念
    发送网络请求调用第三方接口(spring boot框架)
    动态生成javaBean
    达梦dm数据库远程备份与恢复
    springboot定时任务的使用
    抽象与接口
    电商网站后台九大功能模块详解
    面向对象设计—类和对象
    常用的数据结构—数组
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4617775.html
Copyright © 2020-2023  润新知