#cards #poker #combination

bin+lib pokerhandrange

德州扑克手牌范围。告诉您两张牌是否在其中,并可用来生成牌组合。

2 个版本

使用旧的 Rust 2015

0.1.1 2015 年 12 月 18 日
0.1.0 2015 年 9 月 11 日

#33#poker

MIT 许可证

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