首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人工智能算法设计:纸牌游戏

人工智能算法设计:纸牌游戏
EN

Stack Overflow用户
提问于 2011-05-16 17:20:59
回答 1查看 6.8K关注 0票数 5

目前,我正在开发一个名为布里斯卡斯的西班牙纸牌游戏,或者布里斯科拉,http://en.wikipedia.org/wiki/Briscola

简而言之,这是一种纸牌游戏,两队两人互相比赛(他们看不见对方的手,甚至连队员都看不见),只有在开始时牌被洗牌,然后三张牌交给每个玩家。以顺时针的方式,每个人抛出一张牌,试图赢得那个回合。谁赢过那个转身就拿分的人。然后,以顺时针的方式,赢得最后一轮比赛的选手,从牌顶拿出一张牌,左边的牌,以此类推。然后你会一直玩到甲板空空如也。谁能得到更多的积分,谁就能赢。

详细信息:

甲板尺寸: 40

球员:4人(2人2人)

卡片有特定的价值。(由0至11)

问题

,我知道直接的MiniMax太贵了。这类纸牌游戏通常使用什么算法?此外,任何你能指出的文献也将是有益的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-16 21:12:10

这取决于你有多雄心勃勃,但作为一个开始,你需要一个快速的引擎来模拟比赛。

然后你需要一个快速的,因此可能是简单的,模型播放器。

这个模型玩家将没有时间计算前进。它只能对预定义的状态作出反应。所以你的第一步就是建立一个足够好的游戏状态。游戏状态应该包括你的手和一些统计的历史,哪些牌已被丢弃,可能是如何玩他们的手。

接下来,您将构造一个模型播放器,它对状态起作用。任一

( A)用手写一个,这是根据你定义的一些启发来玩的。但请记住-还没有计算太重!

( B)写一个通用播放器,但省略常量和截断值.使用您的模拟引擎和遗传算法与竞赛选择,以进化良好的参数为上述的值。为了获得加分,让你的球员在两人的队伍中进化,这样他们就能很好地互补。

( C)使用更多的人工智能,让遗传编程系统(有几个成熟的)。找一个能做锦标赛的人。您甚至可以自己实现一个,但我们不要太激动:)为您编写整个播放器,使用您的状态作为输入。

下一步是:

要么你已经有了一个伟大的球员,可以认为自己已经完成了,要么你想让它变得更好。如果你想让你的运气更好的话!

使用蒙特卡洛模拟显示出大量的手,在特定的情况下你的每一个选择(如果我理解正确的话,总是有三个选择)。让你的模型玩家在每次你有选择的时候做出决定,让你的蒙特卡罗模拟在每次你进行模拟的时候随机地洗牌。

现在你应该有一个伟大的扑克牌!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6020969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档