2048年游戏的最佳盲目算法是什么?

Jon*_*oom 26 algorithm artificial-intelligence

自从2014年2月发布以来,游戏2048已经大受欢迎.有关游戏的描述和最佳算法的讨论,请参阅2048游戏的最佳算法是什么?.这是源代码.

2048 的盲算法是看不到板的算法; 算法收到的唯一反馈是是否发生了尝试滑动(我们可能会认为滑动滑块会产生可听见的哔哔声).盲目算法实际上对于2048年的入门非常有用,而无需给予游戏全神贯注的关注.

这是我的具体问题:2048年的盲目算法是否总是比10 ^ 6次试验中的平均得分3500更好?(只发布您已经验证的答案)

这是LADDER算法的性能,可以标记为(LD*RD*)*(+ U).也就是说,一个循环"向左,向下反复直到卡住,向右,向下重复直到卡住"并且如果向左,向右和向下按下则全部被阻挡,如果顶行完全是空的并且在底部,则会发生这种情况行已完全填满.我把这个算法称为LADDER因为字母LDDR,因为我想象在像大金刚的马里奥那样爬下梯子.该算法的动机是保持从板的顶部到底部的渐增梯度,类似于许多非盲算法.

这是最终板上由顶部瓷砖着色的LADDER的10 ^ 6次试验的直方图,箱宽为32,平均值为3478.1.我通过模拟Python中的游戏和算法来生成这些数据,使用概率.9,每个新图块都是2,就像在原始游戏中一样.您无法在此垂直比例下看到1024个游戏,但它们稀疏地分布在8000到16000之间.分形结构与顶部图块,第二个顶部图块等的出现次数有关.相比之下,随机按钮糖化在10 ^ 4次试验中平均约为800.

在此输入图像描述

Chr*_*aes 2

2048 游戏中最重要的是将高数量集中在边界而不是中间。因此,一个非常好的策略是将所有内容尽可能长时间地放在底部。你的 LADDER 算法可以做到这一点,但我想更多地关注左侧,而不是完全切换到右侧。这是伪代码中的算法:

\n\n
while(true)\n    {\n    if (down)\n        continue;\n    elseif(left)\n        continue;\n    elseif (right)\n        continue;\n    else\n        {\n        up;\n        down; //if forced to go up; go back down immediately\n        }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

按照您的约定,这将是:

\n\n
((D*L)*R)U\n
Run Code Online (Sandbox Code Playgroud)\n\n

用言语来说:能走多远就走多远;如果你不能; 向左走; 如果你不能向左走;向右走。你很少需要上去。

\n\n

由于我很快没有时间来实现它,因此使用它 10\xe2\x81\xb6 次;我希望其他人能够为此提供正确的统计数据,但我的猜测是这将优于您的 LADDER 算法

\n