在2048年游戏中合并拼贴的高效通用算法

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

我从较简单的3x3版本开始,为了向右滑动,我开始检查右侧的空砖块,然后检查相邻的砖块是否有相同的数字。 我最终有8种不同的情况,一旦我发现它属于哪种情况,我可以做移动/合并。 问题在于我需要弄清楚4x4和5x5的可能情况,并且问题变得非常复杂。 重新使用为3x3编写的代码来处理4x4和5x5也很困难。

我也尝试检查空的瓷砖,具有相同数量的瓷砖,从最右边的瓷砖开始(再次向右滑动),然后循环一次(可能需要为更大尺寸的栅格循环两次以上?)此方法适用于任何游戏规模(3x3,4x4,5x5等)的数量,但它似乎有点低效,我怀疑有一些更好的方法来做到这一点。

那么在2048年的游戏中是否有优雅的检查和合并方式呢?

链接地址: http://www.djcxy.com/p/40213.html

上一篇: efficient general algorithm for merging tiles in game 2048

下一篇: Algorithm to get all combinations of (American) football point