- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近偶然发现了游戏2048 .您可以通过在四个方向中的任何一个方向移动它们来合并类似的瓷砖以制作“更大”的瓷砖。每次移动后,都会在随机空位置出现一个新的图块,其值为 2
或 4
.当所有方块都填满并且没有可以合并图块的移动时,游戏终止,或者您创建了一个值为 2048
的图块。 .
一,我需要遵循一个明确的策略来实现目标。所以,我想为它写一个程序。
我目前的算法:
while (!game_over) {
for each possible move:
count_no_of_merges_for_2-tiles and 4-tiles
choose the move with a large number of merges
}
2
和
4
,也就是我尝试有
2
和
4
瓷砖,尽可能少。如果我以这种方式尝试,所有其他图块都会自动合并,并且该策略看起来不错。
最佳答案
我使用 expectimax 优化而不是 @ovolve 算法使用的极小极大搜索开发了一个 2048 AI。 AI 只是对所有可能的移动执行最大化,然后是对所有可能的瓷砖产生的期望(由瓷砖的概率加权,即 4 为 10%,2 为 90%)。据我所知,不可能修剪 expectimax 优化(除了删除极不可能的分支),因此所使用的算法是经过仔细优化的蛮力搜索。
表现
默认配置下的 AI(最大搜索深度为 8)需要 10 毫秒到 200 毫秒的时间来执行移动,具体取决于棋盘位置的复杂性。在测试中,AI 在整个游戏过程中实现了每秒 5-10 次移动的平均移动速率。如果搜索深度限制在 6 次移动,AI 可以轻松地每秒执行 20 次以上的移动,这使得 interesting watching .
为了评估AI的得分表现,我运行了100次AI(通过远程控制连接到浏览器游戏)。对于每个图块,以下是该图块至少获得一次的游戏比例:
2048: 100%
4096: 100%
8192: 100%
16384: 94%
32768: 36%
关于algorithm - 游戏2048的最优算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342854/
我正在尝试在r中编写代码,以便找到单变量正态分布的最大似然(而不是对数似然)值。我知道还有其他方法,但是我需要深入了解数值优化才能进行进一步的工作。当我调用'optim'函数时,它似乎根本不会进行迭代
最近我一直在用 php + mysql 做一个相当大的项目。现在我担心我的 mysql。我应该怎么做才能使我的 mysql 尽可能优化?把你知道的都说出来,我将非常感激。 第二个问题,我在每次加载页面
我不太了解 InitializeCriticalSectionAndSpinCount 的文档: http://msdn.microsoft.com/en-us/library/windows/des
我们公司有几种不同的获取潜在客户的方式,以及我们处理的几种类型的潜在客户。每种类型的潜在客户之间只有微小的差异,并且大部分信息与一种或多种其他潜在客户类型共享或相关。我和我的团队正在尝试使用 Solr
ϵ-贪婪策略 我知道 Q-learning 算法应该尝试在探索和利用之间取得平衡。由于我是该领域的初学者,因此我想实现一个简单版本的探索/利用行为。最佳 epsilon 值 我的实现使用 ϵ 贪婪策略
我是一名优秀的程序员,十分优秀!