1

我正在为棋盘游戏(2 名玩家)开发一个软件,该游戏有 10x4 单元格,两个玩家各有 9 个棋子。最初,玩家 1 的棋子将位于棋盘的顶部,而玩家 2 的所有棋子将位于棋盘的底部(类似于国际象棋,但要简单得多!)。

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

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

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

4

0 回答 0