2011-03-02 32 views
-1

我想开发一个鲁道游戏,最多4个玩家至少玩两个。其中一名球员将是AI。由于条件太多,我无法决定移动电脑的棋子。我正在尽我所能,但仍然在开发一种可以与人竞争的高效算法。如果有人知道任何语言实现的任何算法的答案,请让我知道。谢谢。如何使一个有效的鲁道游戏玩AI算法

+4

花点时间改进语法(只需仔细检查你发布的内容),如果你想制作一个AI,就需要付出相当大的努力。我建议在网上搜索'AI教程'来帮助你入门。这里没有简单的答案。你将不得不自己投入腿部工作。 – 2011-03-02 05:43:12

回答

0

我认为,在大多数电脑卡/棋盘游戏中,为你的AI玩家获得一个合理的好策略要比试图获得一贯获奖的顶尖算法要好。 AI玩家玩起来应该很有趣。

非常合理的做法是收集一套您的AI应遵循的经验规则。就像'如果我在骰子上得到6,我应该在考虑任何其他动作之前移动一个棋子','如果我有机会“吃掉”另一名棋手的棋子,那么等等。然后将这些规则从最重要性不那么重要,并在代码中实现它们。你可以将一组规则结合到不同的策略中,并尝试切换它们以查看AI是好还是坏。

0

此外,如果你想你可以尝试一般的游戏玩AI算法,如蒙特卡罗树搜索。基本上的想法是这样 - 你需要模拟许多随机游戏从当前的行动,然后选择这样的行动,保证统计最好的结果。

0

从一个简单的启发式开始 - 每个玩家必须移动的正方形总数是多少才能让所有的棋子回家?现在,您可以对启发式进行一些调整 - 例如,家庭广场中的一件作品的额外费用是多少? (提示 - 玩家获得六分之一之前掷骰子的预期总数是多少?)。现在,您可以根据他们被击中的可能性,进一步调整家中棋子的“预计距离”。例如,如果一个棋子在玩家下一步移动之前有1/6的机会被击中,那么它的启发距离是5/6 *(当前距离)+ 1/6 *(家距)。

然后,您应该能够选择一种最大化您的玩家在所有对手中的优势(启发式差异)的举动。