【发布时间】:2021-03-08 00:08:32
【问题描述】:
我正在制作自己的 5 连胜游戏,其中棋盘大于 5x5,尺寸尚未确定,但假设为 10x10。我正在使用极小极大算法和 alfa-beta 修剪来设计它。我已经确定获胜情况的效用函数为:(空位+选择的位置)*5,所以如果计算机发现一个获胜的地方还有2个空位,那么值将是(2+1)*5 = 15。同样的计算失败,但时间是 -5 而不是 5。对于平局,它会评估 0。现在,我写这篇文章的问题是:如何确定未完成场景的实用程序,其中达到深度极限?简单地将其设为 0 还不够好,必须有某种“猜测”或排名。
我的一个想法是计算每一行、每一列和每条可能的对角线中的所有 X,然后做空位置+选择的位置乘以最大找到的 X 序列。问题是计算需要时间并且写起来很痛苦,然后你还必须考虑找到的序列的边缘:它们是否与 O 接壤?我们应该算 X 的空白吗?
这似乎非常复杂,因此我想知道是否有人对未完成的场景有什么好的建议。谢谢!
【问题讨论】:
标签: java tic-tac-toe minimax