我也没有看到我如何设置它: 我必须为2名玩家编写一个小型IA用于非对称棋盘游戏。每个回合每个玩家都有许多动作点用于在棋盘上移动棋子(10x10)。 现在我知道如何根据给定动作点的数量生成每个pawn的可能移动列表但是我阻止下一步,选择最佳移动。我怎么能编码这样的事实,例如5个动作点最好移动一个棋子3个细胞,另外2个细胞移动一个棋子5个细胞。我是否必须使用特定算法或应用编程概念......?好吧,我迷路了。
希望你能帮助我:)。
答案 0 :(得分:0)
你的问题有点模糊。假设您只是水平和垂直移动,那么有两种简单的算法可以使用DFS(深度优先搜索或BFS(广度优先搜索)。也可以在这里查看https://www.ics.uci.edu/~eppstein/161/960215.html
答案 1 :(得分:0)
您需要根据游戏规则为每个动作指定分数(评估)。当您选择适当的评分方法时,您可以评估5种可能的操作中哪一项是最佳的。
作为一个例子,让我们假设一个简单的游戏,你必须把你的棋子放在他们的顶部(具有简化/放松规则的棋子),让所有对手的棋子。当你将棋子移动到下一个空闲单元而不会让你的棋子暴露在危险中时你可以指定得分+1,当你拿对手的棋子+3时。如果对手在下一步中拿下你的棋子,你减去你的分数-3。您可以定义其他评分规则。当您对所有可能的移动应用评分时,您可以选择使用 MinMax算法进行2个玩家游戏或一些贪婪搜索算法的最佳移动,这只会最大化得分选择操作在没有预测对手移动的情况下,下一步的得分最高。