如何计算极小极大值

时间:2017-03-28 09:09:43

标签: algorithm heuristics minimax calculation

我正在为一个棋盘游戏(2人)开发一个软件,它有10x4个单元格,两个玩家各有9个。最初,玩家1的棋子将位于棋盘的顶部,而对于玩家2,所有棋子都将位于棋盘的底部(类似于国际象棋,但不那么复杂!)。

我使用MiniMax算法计算下一个最佳动作。现在,算法本身似乎工作正常。我面临的问题是启发式值计算。 如果在我搜索之前没有找到最佳移动(当前为4),我的代码只需从移动列表中找到它的第一步。这可能是因为所有动作的得分都相同,直到深度为4!

所以,它只是停滞不前。例如,它将在第一圈中将第1件从位置A移动到B,在第2圈中它将同一件从位置B移动到A. 它一直这样做,直到对手靠近我的棋子。

现在,我想要知道的是如何确保如果对手没有进入,我会这样做,而不是拖延。 目前,我正在根据我的棋子和对手之间的差异来计算启发式值。 如何计算这些值,以便选择那些导致更接近对手棋子的位置?感谢您的帮助!谢谢!

0 个答案:

没有答案