论坛首页 Java企业应用论坛

德州扑克AI算法思路

浏览 14937 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-07   最后修改:2012-07-09
玩过德州扑克的人请继续往下看,没玩过的,就不用看了,说了也不懂。
现在项目有需求要做AI机器人,是跟真人(多人)玩的,相对来说要具备比较高智能的AI。目前自己想过的思路
1.概率判断法,根据每次开牌自己和对手胜率来决定跟注或者加注或者弃牌等等。目前能想出算出概率的办法也就是排列组合了,但是在翻牌圈之前,如果只有2个人的情况,C(48,5),中间还包括比牌的算法,计算量是非常大的,计算机需要时间太长,测试过大概需要15s时间。网上有专门算概率的网站,不知他们是通过什么算法实现的,很快。
2.发底牌时,根据手上的两张牌根据相对简单的逻辑来判断,基本就是一大堆if...else..,如果一对XXX,如果两张同花XXX,然后当翻牌圈之后,最多就只有C(45,2)这样计算量就小很多了。但是后来仔细想了下,在发底牌到时候,你同时还得结合其他N个对手的情况来判断,而且没有一致性的规律,就复杂很多了。
目前来说也就这两个思路相对来说比较合理,但是解决方案感觉不太行,有木有人做过这样的需求或者类似的应用?欢迎大家来讨论
   发表时间:2012-07-10  
你这是从零开始自己算啊。
还是先去看看一些德克萨斯扑克的机器人吧,大部分好牌的概率都有表的。一些差牌组合没有。
一般这些机器人都是根据手牌和上面的牌判断all in还是别的。所以原理比较简单,重要的是得有一个精简实用的概率表。
0 请登录后投票
   发表时间:2012-07-10  
想要做的很智能,都很复杂。
我看过一个手机单机版本的算法,和2楼说的差不多。
主要是根据桌面上的玩家手中的牌型做概率处理。
0 请登录后投票
   发表时间:2012-07-10  
目前好像大部分都是根据概率表来算的!
0 请登录后投票
   发表时间:2012-07-10  
楼主,可以网上搜一搜,有专门一本书介绍的。可以根据概率表的。
0 请登录后投票
   发表时间:2012-07-10  
我下了个软件看了下,叫做PokerStrategy.com Equilator,这个软件是专门算概率的,他貌似采用的也是求出所有组合,然后一一比对,不过他的算法确实写的够快的。170W的组合比较,不到1s完成。后来我自己写代码测试了下,发现关键瓶颈不在求组合的上面,而在识别牌型和比牌上,所以打算从识别牌型上优化原来的算法。
0 请登录后投票
   发表时间:2012-07-27  
对于识别牌型和比牌,大家都是用什么样的算法呢。。。。?
0 请登录后投票
   发表时间:2012-07-27  
yadi001zb 写道
对于识别牌型和比牌,大家都是用什么样的算法呢。。。。?

这个只有自己开发呗,主要思路是先排序,然后再判断
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics