用于在游戏2048中合并图块的有效通用算法

时间:2017-02-12 10:35:33

标签: python algorithm assembly merge 2048

我已经检查了许多帖子,例如here,但我认为他们没有我想要的内容。我想为游戏2048创建一个合并函数,我希望算法尽可能通用:它应该适用于传统的4x4 2048,以及不太常见的3x3,5x5等等。我也想只使用最基本的函数,比如if-else(我实际上是使用汇编语言在微处理器中编码,所以我不能在python中使用任何花哨的例程或函数)。有没有高效,优雅的解决方案?

我从更简单的3x3版本开始,如果向右滑动,我只是从右边开始检查空的瓷砖,然后检查相邻的瓷砖是否有相同的数字。我最终得到了8个不同的案例,一旦我发现它属于哪个案例,我就可以进行移动/组合。这个问题是我需要找出4x4和5x5的可能情况,问题变得非常复杂。重新使用为3x3编写的代码来处理4x4和5x5也很困难。

我还尝试检查空的瓷砖,具有相同编号的瓷砖,从最右边的瓷砖开始(再次向右滑动),然后循环一次(对于更大尺寸的网格,可能需要循环两次以上?)这种方法应该适用于任意数量的游戏规模(3x3,4x4,5x5等),但似乎效率有点低,我怀疑还有更好的方法。

那么在2048游戏中有优雅的方式进行检查和合并吗?

0 个答案:

没有答案