2048.md 1.4 KB

2048

::: details 目录 [[toc]] :::

规则 游戏画布大小 4 * 4

初始化 两个方块 数字为2

可以上下左右移动,相同数字叠加(任意两个格子合并后,新增分数为合并后格子的值),叠加颜色变化

移动的同一行,或同一列相同的可以叠加

若所有数字都在同一侧,则操作无反应

eg:都在左侧,操作左移,无反应

每次移动的时候,若有空格,操作的相反方向则可以生出来一个格子2

随机生成数字,如何去判断随机生成的位置,位置要求为空。

生成小方格算法

  1. 选择在哪行/列生成数字:当用户左移合成时,则选择在最右侧一列生成数字; 当用户上移合成时,则选择在最下侧一行生成数字;其他情况以此类推

  2. 在这行/列的4个位置中哪个位置生成数字:

    a)将这行/列取出,有数字的记录数字,无数字的记为0,遍历每一项,将为0项的索引记录出来

    b)在这些索引中随机取一项,作为生成数字的位置

  3. 将数字2 根据第一步获取到的行 以及 第2步 b)获取到的索引填到对应的位置,

按键: wasd,上下左右指令

game over : 画布上没有空格,并且所有的数字都无法叠加

预判:执行上下左右移动,是否融合,如果都无法叠加,则结束