如何教电脑系统如何玩扑克?

时间:2009-07-29 16:35:24

标签: c# artificial-intelligence bots poker

首先,当然我随机有5张牌。只有一次我可以改变,并且我已经在我的系统中教过[程序]扑克规则。我的问题是如何选择“我不需要这张卡还是有卡片?”。我可以自己改变,但电脑不知道。我想也许这很困难,但你们有什么帮助可以提供吗?

7 个答案:

答案 0 :(得分:16)

查看How I Built a Working Poker Bot Series(部分12345678),其中有很多关于开始使用扑克游戏的信息。

具体来看Part 8,详细介绍如何评估手值。你想要做的是统计评估手中的牌,并从那里确定哪些牌获胜手牌的概率最高。然后你可以丢弃你不需要的卡片。

答案 1 :(得分:6)

答案 2 :(得分:2)

如果您只想制作一个扑克游戏计划,那么以上建议会有所帮助。如果您正在构建一个学习如何玩扑克的系统,那么您需要利用机器学习/归纳学习技术,如神经网络,决策树,遗传算法。塞缪尔写了一个早期的跳棋游戏程序,学习如何提高它的表现。

http://en.wikipedia.org/wiki/Arthur_Samuel

还有一个关于机器学习和游戏的网站:​​

http://satirist.org/learn-game/

答案 3 :(得分:0)

您将要研究Expert System的设计。并将其应用于您的问题域。

如果看起来势不可挡,那就从小做起吧。创建一个基本的规则知识库,让你的扑克机器人贪婪地寻找对(和3或4种)。如果情况良好,请添加规则以尝试构建直道,并规定何时支持直接建立而不是寻找对,然后当效果良好时,添加冲洗。持续的,小的增量是这个过程的关键。

答案 4 :(得分:0)

David Levy的

Computer Gamesmanship

alt text

覆盖螺柱和拉伸。当你完成阅读时,你会发现它有多难。

请注意,这本书已超过25年,但这是一个良好的开端。

答案 5 :(得分:0)

你想要学习的东西是博弈论和数据挖掘。顶级程序使用大型游戏理论模拟来为专家系统产生容差,该系统用于以尽可能少的系统错误的方式随机化游戏。如果您足够好地搜索网络,您将找到一些这类解决方案的完整实现,但它们通常缺少生成它们的代码。仅仅接受其中一种解决方案的不利方面是他们没有充分利用对手的错误,这是今天大部分研究都围绕着这个话题的地方。

有许多方法可以使用几乎所有可以想象的AI算法来制作游戏理论解决方案。

答案 6 :(得分:0)

检查扑克评估员。 http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup 使用蒙特卡罗分析来找出哪些卡片在矿床中排出以最大化期望值。