一个扑克评估和公平计算库

eval7的Python项目详细描述


基于Anonymous7代码库的Python Texas Hold'Em手持评估库 这又是基于基思规则的手算器(你可以看到 here)。该库还为扩展的扑克炉集提供了一个解析器 但是,样式范围字符串和或多或少的工作公平计算器 还需要清理一下。

目前这个库相当基本;只有 Flop Ferret已完全实现。如果时间允许,目标是 提供一个功能齐全的扑克手评估器和范围公平计算器 具有干净的本地python接口和所有性能关键部分 在cython中实现。

安装

eval7需要python 2.6+。构建过程需要cython(使用 0.23分)。如果您有python的工作副本:

pip install cython

应该能在大多数平台上工作。通过包管理器安装或从 消息来源也应该起作用。

简单安装:

pip install eval7

用法

基本用法:

>>> import eval7
>>> from pprint import pprint
>>> deck = eval7.Deck()
>>> deck.shuffle()
>>> hand = deck.deal(7)
>>> pprint.pprint(hand)
[Card("5c"),
 Card("9s"),
 Card("8d"),
 Card("5d"),
 Card("Ac"),
 Card("Qc"),
 Card("3d")]
>>> eval7.evaluate(hand)
17025648

>>> hand = [eval7.Card(s) for s in ('As', '2c', '3d', '5s', '4c')]
>>> eval7.evaluate(hand)
67305472

更大的数字代表更好的手!

Card对象为具有^{tt2}的卡提供了方便的python接口$ 以及suit属性。

Deck对象提供一些基本功能,这些功能可能对 简单的模拟,例如sampleshuffledeal。甲板 在这一点上,代码并没有得到很好的优化,所以尽管它在 快速轻量级模拟,你不会得到性能 超出了精确范围与范围权益计算所需的范围。

手动范围

eval7还提供了一个用于加权扑克炉风格的手范围的解析器。

示例:

>>> from pprint import pprint
>>> hr = eval7.HandRange("AQs+, 0.4(AsKs)")
>>> pprint(hr.hands)
[((Card("Ac"), Card("Qc")), 1.0),
 ((Card("Ad"), Card("Qd")), 1.0),
 ((Card("Ah"), Card("Qh")), 1.0),
 ((Card("As"), Card("Qs")), 1.0),
 ((Card("Ac"), Card("Kc")), 1.0),
 ((Card("Ad"), Card("Kd")), 1.0),
 ((Card("Ah"), Card("Kh")), 1.0),
 ((Card("As"), Card("Ks")), 1.0),
 ((Card("As"), Card("Ks")), 0.4)]

>>> hr = eval7.HandRange("AJ+, ATs, KQ+, 33-JJ, 0.8(QQ+, KJs)")
>>> len(hr)
144

目前,handrange对象只是 范围字符串分析器。最终的希望是加入cython支持的样本, 枚举和handrange与handrange权益计算。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
显示或隐藏java菜单片段   java ClassNotFoundException:org。阿帕奇。平民数学3。分配分配   java在同一事务Spring中提供多个资源提供者   java Hibernate 4.3,在构建SessionFactory时,为什么必须提供两次属性?   java NoClassDefFoundError与Bukkit插件的正确依赖项   java Baseadapter滚动速度慢且滞后   java如何在Spring Boot Docked应用程序中连接到特定的本地MongoDB实例?   java正则表达式匹配空白、任意字符和/或给定序列的换行符   Softlayer JAVA API示例,用于获取“每小时/预设配置裸机服务器”的所有配置   Textview和String之间的java验证日期   在java中使用getter传递值失败   java如何在ODL控制器中配置拒绝服务过滤器   从java程序调用unix shell?从java程序向unix管道读写稳定的数据流   java如何从HTTP基本身份验证获取密码   AST解析器中的java问题   java为未检查的错误编写错误消息?   异步JAXRS实现中的java NullPointerException   java Post HashMap作为Android改造Post调用中的Post请求值   SONARQUE应该是Unicode而不是java。时间DateTimeFormatter应用于国际日期和时间