一个扑克评估和公平计算库
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对象提供一些基本功能,这些功能可能对 简单的模拟,例如sample、shuffle和deal。甲板 在这一点上,代码并没有得到很好的优化,所以尽管它在 快速轻量级模拟,你不会得到性能 超出了精确范围与范围权益计算所需的范围。
手动范围
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权益计算。