我们正在用c++创建一个类似Rummmikub的游戏(使用HTML/CSS/JS前端)。除了人类玩家的移动之外,我们还想创建一个用于移动的算法。有人能推荐一个好的起点,或者已经存在的算法吗?
发布于 2013-09-25 19:02:12
一般来说,我要说的是-在每一步中,检查从一个完整的“手”(这不是微不足道的)可能的最小距离,并尝试根据它们在可能的解决方案中的使用情况给不同的部分评分。你的终极目标是决定扔哪块石头,将不能完成任何可能的结束场景的风险降到最低(如果你可以干扰你的对手,可能会有奖励,但我想这是以后的事)
发布于 2013-09-25 19:06:56
对于像这样的基于回合的游戏,经常使用minimax (https://en.wikipedia.org/wiki/Minimax)。要在超过2个玩家的情况下启用此算法,您需要让每个节点都是值的向量,而不是单个值。这可能会导致大量的计算,您可以通过在极小极大树上应用alpha-beta剪枝(https://en.wikipedia.org/wiki/Alpha_beta_pruning)来弥补。
顺便说一句:当使用AI进行游戏时,请记住您的代理应该是有趣的,以便赢得支持。(通常)制作太难的AI代理是非常容易的。
https://stackoverflow.com/questions/19002692
复制相似问题