gpt4 book ai didi

javascript - miniMax 算法是否能够处理任何输入

转载 作者:行者123 更新时间:2023-12-03 02:19:24 33 4
gpt4 key购买 nike

我正在努力使用 miniMax 算法构建一个基本的 tictactoe 游戏,并且我在 JavaScript 中有一个可以运行的实现。然而,我正在向它提供一些测试板状态,但它似乎没有按我预期的方式工作。例如,如果我喂它

['o', '1', 'x',
'x', 4, 5,
'x', 'o', 'o']

它告诉我 X 的下一个正确 Action 是索引 4(获胜状态)。但是如果我喂它

['o', 'x',  2,
'o', 4, 5,
'x', 7, 'x']

它告诉我 O 的下一个正确 Action 是索引 2(这会立即失败,因为 X 将通过占据位置 7 获胜。

所以基本上我想知道这是否重要。从整个游戏进程来看,我不相信第二个示例中的棋盘布局是使用算法实际发生的布局,无论 X 运行 O 的计算机做什么,都不会让棋盘进入这种状态,所以也许我的实现是正确的。 miniMax 是否应该能够处理这种情况(或任何板状态),或者该测试板状态只是它无法处理的一种状态,因为它是一种“不可能”状态。我不信任我不完全理解的代码,因此欢迎任何建议。

我的实现的完整代码位于 Github 上:https://github.com/cugamer/tictactoe/tree/master/lib

最佳答案

是的,它应该涵盖任何输入,是的,这确实很重要,因为您的代码中的某个地方可能存在需要排除的错误。

主要是因为 Minimax 只是给出了棋盘的状态,而不是历史,即导致该位置的一系列 Action 。它根本无法确定一个状态是否是“可能的”状态。它所做的就是向前看,即找出 future 可能出现的所有状态,如果其中任何一个导致肯定失败,它应该能够避免这条路。

但是,您的具体示例是一个有趣的案例。无论“O”如何进行,最终都会失败。因此,所有可能的 Action 都将返回相同的结果,即玩家“O”的最低可能得分。由于在您的代码中 bestMove 除非出现更好的 Action (在本例中没有更好的 Action ),否则不会更新,因此它只会返回第一个 Action 。

关于javascript - miniMax 算法是否能够处理任何输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49228795/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com