2 个版本
使用旧的 Rust 2015
0.1.1 | 2015 年 12 月 18 日 |
---|---|
0.1.0 | 2015 年 9 月 11 日 |
#33 在 #poker
22KB
437 行
#pokerhandrange-rs
有一个示例应用程序,它使用这些范围让两个范围相互竞争。该包定义了一个 Range 特性,并包含一个 SimpleRange,可以使用 new_from_string("AA,AK+") 创建范围表示,其中字符串可以不同。生成的 SimpleRange 可以用来检查任何两张牌是否 包含 在其中,或者从中 抽取 样本牌。
该包名为 pokerhandrange
,您可以通过 cargo 依赖它
[dependencies.pokerhandrange]
git = "https://github.com/th4t/pokerhandrange-rs.git"
实现的字符串范围描述符
描述范围组件的“种类”
- JJ-KK
- 99
- QQ+ (QQ,KK,AA)
- AJo
- KJo+ (只有 J 升至 K,但不包括)
- AJs
- KJs+
- AJ (AJs 和 AJo)
- AJ+ (AJs+ 和 AJo+)
可能有用,但缺失
- Axs = A2s+
- Ax = A2+
##关于示例应用程序 此应用程序由于以下原因不够准确:一些显而易见(其中之一在下面描述),一些则更微妙。该方法无法扩展到三个或更多手牌。它的工作方式如下:在开始时通过字符串指定两个手牌范围,然后反复从它们中抽取牌,发公共牌,评估每手牌的强度。数千次。最后打印统计信息。
作为一个统计错误示例,这种错误能够扭曲结果:一个较窄的手牌范围如果在每次组装时都占据优势,并且我们坚持非重叠的底牌,那么它就能 支配 另一个。多亏了“底牌必须始终不同”的检查。对于 3+ 竞争范围,这种方法会表现得更加糟糕。
##待办事项
- 更复杂的范围类型(手动加权(90% AA,10% 22-TT))
- 更多注释
- 更多测试
- 将实用函数放在其他地方
- 在 cargo test 目标中排除示例应用程序的构建
- 其他:pokereval 包中的 pokereval 特性,以便查找和评估可以互换?
依赖项
~405–630KB