2048合并算法
新手入坑Cocos两周半,这是第二个算法展示和讲解,希望能坚持下去
今天完成2048小游戏核心功能,参考 https://playhop.com/app/210408
最终效果:
试玩地址:
2048-在线试玩, 由于是本机+内网穿透部署,可能由于我电脑关机导致访问不了。另外如果是电脑访问,请把浏览器宽度调低一些
算法主要流程:
一、算法讲解
由于算法与UI高度耦合,这次只能重点讲讲算法思路。
1.1 单次合并棋子
下图中红色表示刚刚放置的棋子,其他有数字的格子表示之前放置的棋子
- 当4落下,在落下位置生成16
- 16下方形成空缺
- 16下落
1.2 多次合并棋子
- 2落下,合成4
- 形成空缺,最上面的4下落
- 4下落触发合并,合并成8
- 8继续合并
1.3 当前需要合并的棋子
1. 刚刚放置的棋子: 例如1.1图中红色4方块
2. 合并后的棋子: 合并后生成的新的棋子,需要再次合并
3. 松动后的棋子: 例如1.2中最上方的4,它因为其他棋子的合并发生了位移。需要合并