美文网首页
2048小游戏算法解析

2048小游戏算法解析

作者: Jack_Emery | 来源:发表于2018-03-27 11:43 被阅读0次
数组转换

为了方便理解,我们使用二维数组来进行分析 2048 的算法逻辑。

首先我们简单的了解一下游戏玩法:

简言之,就是通过上、下、左、右移动,使相邻的相同元素进行合并,进而数字相加得到 2048的结果的游戏。

(如果费解的话,可以下载一个2048的游戏体验一下)

注:这里的相邻,指忽略掉两个元素中间的空元素的情况。(下图所示都是相邻情况)

相邻说明

好了,我们来分析一下移动的逻辑处理:

以向右移动为例吧:那我们怎么来处理这种情况呢,我们的算法应该怎么实现呢? (注:空的地方其实是0)

向右移动示意图

我们先判断能否向右移动: (移动条件 1.相邻元素相同 或者 2.当前元素的右侧元素为空)

下面的 board 使我们定义的二维数组。

能否向右移动逻辑

如果,上面的函数返回 false, 则不能够进行移动,如果返回 true, 则我们需要进行下一步

合并操作:

移动情况1 移动情况2

if (board[i][k] == 0) 描述的是 移动情况1

else if (board[i][k] == board[i][j]) 描述的是 移动情况2   两种移动情况需要检测中间块是否包非0元素。

移动后变更数组数据

这就是 2048 小游戏的基本逻辑,其他方向的移动都是这个思路。我这里使用的 js 整理的思路,你也可以按照这个思路转换成你所使用的语言。如有问题,请留言,希望能够对你有所帮助。

相关文章

  • 2048小游戏算法解析

    为了方便理解,我们使用二维数组来进行分析 2048 的算法逻辑。 首先我们简单的了解一下游戏玩法: 简言之,就是通...

  • 2048小游戏

    2048小游戏 author:滚滚 构思来源:模仿现有的2048小游戏,并希望通过这次大作业学习pygame与py...

  • 用C语言实现2048游戏

    2048_C_code 用C语言编写的2048 1 要实现我们的 2048 小游戏,需要涉及一些数据结构的知识,以...

  • 2048小游戏

    写在开头: 本人初入iOS,刚刚学习OC一个月,学到的东西还比较有限,我利用这有限的知识尝试自己去写一个2048小...

  • 2048小游戏

    在慕课网学习制作了2048小游戏,代码放在Github,效果图如下 一、 初始化棋盘格(绝对定位) 二、并随机两...

  • 2048小游戏

  • 2048小游戏

    前言:最近在学习Python的过程中,在github上看见别人实现的一个小游戏2048,感觉很有趣,这里记录下实现...

  • 400行代码编C语言控制台界版2048游戏,编写疯子一样的C语言

    2048游戏是风靡一时的小游戏,我们提供的2048小游戏不依赖 TC 环境,不依赖任何第三方库,可以在 VS、Co...

  • swift --2048

    仅此记录学习swift 写的第一个程序。首先上效果图 2048 这个小游戏在页面应该是没有什么难度的, 知道其算法...

  • 2048小游戏制作

    闲暇看到慕课网上有liuyubobobo老师讲的2048小游戏制作,看了教程,感觉应该不是太难,于是就跟着教程开始...

网友评论

      本文标题:2048小游戏算法解析

      本文链接:https://www.haomeiwen.com/subject/gsejcftx.html