1.简介很多人都玩过2048,但我是一个老派粉丝,因为我一直鄙视这种单机游戏。但有一天,我在无聊的泡脚时,拿起老婆的手机,左看看,右看看,莫名其妙的点开了2048。嗯……这真是一款消磨无聊时间的“好游戏”。将每一行或每一列滑动到相邻的位置,并将相同的数字相加以获得最大的数字。最终数字越高,您的分数就越高。所以我想知道,是否有一个特定的例程,例如魔方,可以帮助我决定每一步向哪个方向滑动以获得最佳结果?
2. 如何玩20482048 是一个在4x4 网格上玩的游戏。网格上的每个位置可以是空的,也可以是带有数字的正方形。
当您开始游戏时,会生成两个方块,并在方块的随机位置写入数字“2”或“4”。每个方格有10% 的机会成为“4”,否则成为“2”。
该游戏是通过沿特定方向(上、下、左、右)移动所有块来进行的。执行此操作时,所有彼此相邻且一起移动的具有相同值的块将合并为一个新块,其值等于前两个块的总和。
滑动后,会在随机位置生成新的区块。新立方体有90% 的机会成为“2”,10% 的机会成为“4”。
然后继续玩,直到格子里没有可移动的方块为止。
从逻辑上讲,当您到达值为“2048”的区块时,本游戏的目标就结束了。但我们永远不能停下来,继续比赛,争取更大的胜利。理论上,最大块值为“131072”。
3.问题描述:在尝试解决这个游戏时,经常会出现由于缺乏刺痛而导致的问题。我们不仅需要准确预测新矩形将出现在哪里,而且还需要准确预测它是“2”还是“4”。这是一个随机事件,理论上不可能每次都正确预测。
因此,算法不可能每次都轻松准确地解决难题。您可以尽可能地玩这个概率游戏,以确定每一步的最佳策略。
我们一次只能采取四项行动,挑战是确定这四项行动中哪一项能够提供最佳的长期结果。
我们的算法基于[Expectimax] 算法,它是[Minimax] 算法的变体,但树的根根据其出现的可能性进行加权。
本质上,将游戏视为两人游戏。
玩家1(人类玩家)可以沿四个方向之一移动方块。玩家2(计算机玩家)可以在网格上的任何空位置放置一个方块。基于此,我们可以根据每个动作发生的概率生成一个结果树。这将为您提供所需的详细信息,以确定哪些人事变动可能会产生最佳结果。
3.1. 游戏流程图游戏的一般流程:
游戏的随机性可以通过“添加随机块”过程来检查。 —— 我们需要找到一个随机方块来添加一个块,并为该块选择一个随机值。
挑战在于决定在“确定下一步”步骤中做什么。这就是玩游戏的算法。
总体来说,乍一看很简单。
我们所要做的就是模拟所有可能性,决定哪张幻灯片将为我们带来最佳结果,然后使用它。
因此,算法简化为模拟特定动作并产生结果分数。
这是一个由两部分组成的过程。第一步是看看是否可以移动它。如果你不能移动,游戏将提前结束,得分为0。如果移动是可能的,我们将继续使用实际算法来确定移动的有效性。
3.2 确定下一步行动到目前为止,算法的主要部分是模拟滑动,但关键问题是如何对每个可能的行动进行评分。这就是Expectimax 算法发挥作用的地方。
模拟两名玩家的所有可能的动作,并执行几个步骤,看看哪一个给出最好的结果。
对于人类玩家来说,只有四种动作:上、下、左、右。对于计算机,在空位置随机放置一个“2”或“4”方块。
该算法是递归的,每个递归步骤仅在远离真实游戏中的实际移动一定深度时停止。这会导致流程图自行循环,这正是它实际执行的操作。
1. 在最深处停下来,计算当前模拟方块的得分。 2. 计算机模拟所有可能的动作。它模拟人类玩家的每一个可能的动作,返回人类的动作,并计算分数。 3. 添加为模拟移动计算的分数,并对该移动发生的可能性进行加权。完成此操作后,将所有计算出的分数相加,这将是您想要从当前游戏板进行的移动的最终分数。由于我们执行了四个动作(从当前游戏界面发起的每个可能的动作一个),我们最终得到四个分数,其中最高分数是要执行的动作。
3.3. 计分此时,剩下的就是计算方格的分数了。但你也需要思考如何从这个位置继续得分。
许多方法可以通过添加具有适当权重的多个因素来实现。例如:
空方格的数量可能组合的数量—— 即相同数字出现在两个相邻位置的次数每个方格的最大值所有方格的总和方格的唯一性—— 是方格的结构如何确定正在做什么。确保平方值在沿一个方向增加的范围内。 4. 伪代码现在我们知道了算法是如何工作的,让我们看一些详细解释该算法的伪代码。
我对游戏的实际玩法并不感兴趣,只对决定动作的算法感兴趣,所以我将从这里开始。
下一步就是下一步。从第一个方格开始,它模拟所有可能的动作并返回得分最高的手牌。因此,我们需要为新的模拟方块生成分数。
由于使用了递归算法,我添加了深度限制来阻止它。否则,它可能会无限期地运行。
这也是一种递归,模拟每个人移动一定数量的步数,并确定哪个移动将给出最佳结果。
剩下的就是计算移动后获得的每个方格的最终得分。当然,没有一种算法是完美的,不同的因素会产生不同的结果。
5.性能优化到目前为止,有一些算法试图解决游戏问题,但效率不高。由于该过程的性质,总会存在一定程度的重复。
上述算法有一些优化,不影响游戏的走法不予处理。然而,还有其他方法可以减少工作量,例如跟踪移动的累积概率并在移动的概率太低时停止。
您还可以动态确定深度限制。上面的伪代码的硬编码限制为3,但您可以在计算开始时根据正方形的形状动态计算该限制。
此外,相同的正方形位置可以多次重新访问,使我们能够记住这些位置并缓存这些位置的分数,而不必每次都重新计算它们。可以预先为每个块生成可能的位置,但这可能不可行,因为最多有2048 个块和281,474,976,710,656 个可能的位置。
然而,最重要的优化是调整生成平方分数的算法。用于评分的系数和权重与算法的性能直接相关。
6. 结论2048是一款非常值得尝试的游戏。没有一种方法是完美的,但您可以使用一些启发式方法来探索最适合您的游戏的路径。
这些相同的原则适用于其他类型的两人游戏(例如国际象棋),在这些游戏中不可能准确预测对手会做什么。
请考虑一下。在您的计算机上托管棋盘和纸牌游戏的策略是什么?请在评论中留下您的答案。
标题:小游戏2048的玩法,小游戏2048怎么玩
链接:https://www.7kxz.com/news/gl/17974.html
版权:文章转载自网络,如有侵权,请联系删除!