作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
游戏2048自 2014 年 2 月发布以来迅速流行。有关游戏的描述和最佳算法的讨论,请参阅 What is the optimal algorithm for the game 2048? .这是 source code .
2048 的盲算法 是一种看不到棋盘的算法;算法收到的唯一反馈是是否发生了尝试滑动(我们可以假设阻塞的滑动会产生可听见的哔哔声)。盲算法对于在 2048 中入门非常有用,而无需全神贯注于游戏。
这是我的具体问题:是否有一种针对 2048 的盲算法在 10^6 次试验中始终比平均分数 3500 更好? (仅发布您已验证的答案)
这是LADDER算法的性能,可以记为(LD* RD*)* (+U)。也就是说,循环“向左,向下重复直到卡住,向右,向下重复直到卡住”并向上按当且仅当左,右和下都被阻塞,如果顶行完全为空并且底部行已满。我将此算法称为 LADDER,因为字母 LDDR,并且因为我想象像大金刚中的马里奥一样爬下梯子。该算法的动机是保持从棋盘顶部到底部的渐增梯度,类似于许多非盲算法。
这是 10^6 次 LADDER 试验的直方图,由最终板上的顶部图 block 着色,bin 宽度为 32,平均值为 3478.1。我通过在 Python 中模拟游戏和算法来生成此数据,使用 0.9 的概率,每个新瓷砖都是 2,就像在原始游戏中一样。你看不到这个垂直尺度的 1024 场比赛,但它们稀疏地分布在 8000 到 16000 之间。分形结构与顶部瓷砖、倒数第二个瓷砖等的出现次数有关。相比之下,随机按钮混合在 10^4 次试验中给出的平均值约为 800。
我是一名优秀的程序员,十分优秀!