我想开发一款最多4名玩家和至少2名玩家的ludo游戏。其中一名球员将成为AI。由于条件太多,我无法决定为计算机移动什么棋子。我正在努力,但仍然要开发一种可以与人类竞争的高效算法。如果有人知道以任何语言实现的任何算法的答案,请告诉我。感谢。
答案 0 :(得分:0)
我认为在大多数计算机卡/棋盘游戏中,为您的AI播放器制定一个相当不错的策略比尝试获得一个始终获胜的顶级算法要好。人工智能播放器应该很有趣。
非常合理的方法是收集AI应遵循的一套经验规则。就像'如果我在骰子上得到6,我应该在考虑任何其他动作之前从家中移动一个棋子','如果我有机会“吃掉”另一个玩家的棋子,那就去做,等等。然后将这些规则排除在最大范围之外重要的是不太重要,并在代码中实现它们。您可以将一组规则组合到不同的策略中,并尝试切换它们以查看AI是否更好或更差。
答案 1 :(得分:0)
另外如果你想要你可以尝试一般游戏玩AI算法,比如 monte carlo tree search 。基本上这是一个想法 - 你需要从当前的行动模拟许多随机游戏,之后选择这样的行动,从统计上保证最佳结果。
答案 2 :(得分:0)
从一个简单的启发式开始 - 每个玩家必须移动以将所有棋子放回家的方格总数是多少?现在您可以对该启发式进行一些调整 - 例如,家庭广场中一件作品的额外成本是多少? (提示 - 在玩家获得6分之前,骰子的预期总数是多少?)。现在,您可以根据被击中的可能性进一步调整来自家中的“预期距离”。例如,如果一个棋子在玩家下次移动之前有1/6的机会被击中,则其启发距离为5/6 *(当前距离)+ 1/6 *(本地距离)。
然后,您应该能够选择一个最大化您的玩家优势(启发式差异)的移动,而不是所有对手。
答案 3 :(得分:0)
基本上,人工智能取决于环境的类型。 对于LUDO,环境是随机的。 有多种算法可以决定下一步应该移动哪个棋子。 对于这些类型的环境,您需要学习“ expectimax”,“ MDP”之类的算法,或者,如果您想使其更加专业,则应该进行“强化学习”。