0

我们正在用 C++(使用 HTML/CSS/JS 前端)创建一个类似 Rummmikub 的游戏。除了人类玩家做出移动之外,我们还想创建一个移动算法。有人可以推荐一个好的起点或已经存在的算法吗?

4

2 回答 2

2

一般来说,我会说 - 在每一步中,检查与完整“手”的可能最小距离(这不是微不足道的),并尝试根据它们在可能的解决方案中的用途给不同的部分打分。你的最终目标是决定扔哪块石头,这样可以最大限度地减少无法完成任何可能的结束场景的风险(如果你能干扰对手,可能会有奖励,但我想以后再说)

于 2013-09-25T11:02:12.127 回答
1

对于像这样的回合制游戏,经常使用一个 minimax ( https://en.wikipedia.org/wiki/Minimax )。要在超过 2 个玩家的情况下启用此算法,您可以让每个节点成为值的向量,而不是单个值。这可能会导致大量计算,您可以通过在极小值树上应用 alpha-beta 剪枝 ( https://en.wikipedia.org/wiki/Alpha_beta_pruning ) 来补救。

顺便说一句:在游戏中使用 AI 时,请记住,您的代理应该很有趣,可以赢得胜利。(通常)很容易制作太难的 AI 代理。

于 2013-09-25T11:06:56.040 回答