如何计算minimax的启发式值

我正在开发一款具有10x4单元的棋盘游戏软件(2人),每个玩家都有9个棋子。 最初,玩家1的棋子位于棋盘的顶部,而棋手2的棋子都位于棋盘的底部(与国际象棋类似,但不太复杂!)。

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

所以,它只是停滞不前。 例如,它会在第一回合中将第一块从位置A移动到第二回合,并且在第二回合中它会将同一块从位置B移动到A.它会一直这样做,直到对手靠近我的部分。

现在,我想要知道的是,我如何确保如果对手没有关门,我会这样做,而不是拖延。 目前,我正在计算基于我的作品和opp作品之间差异的启发式值。 如何计算这些值,以便选择导致靠近对手棋子位置的棋子? 感谢你的帮助! 谢谢!

链接地址: http://www.djcxy.com/p/56405.html

上一篇: How to calculate Heuristic values for minimax

下一篇: Optimizing minimax algorithm