4 个版本
0.1.9 | 2023年7月3日 |
---|---|
0.1.8 | 2023年6月11日 |
0.1.6 | 2023年3月12日 |
0.1.4 |
|
0.1.0 |
|
#46 在 游戏
每月下载量 41
280KB
7K SLoC
FUDD
🚧 进行中 🚧
Rust 扑克库。代码灵感来自 Cactus Kev 的 C 语言工作。查看 ckc-rs 了解核心手牌评估库,它使用无标准库以供将来在嵌入式和 wasm 库中使用。
目前仅支持 德州扑克,但正在开发 奥马哈扑克,并希望添加更多游戏类型。支持如 拉兹扑克 将是非常有趣的事情。
示例
在示例目录中有几个库示例,包括一个运行通过 所有可能的手牌组合 的示例
calc 示例 允许您对手牌进行完整分析。这里运行的是 Gus Hansen 和 Daniel Negreanu 在 High Stakes Poker 上的著名手牌对决 quads vs full house
❯ cargo run --example calc -- -d "6♠ 6♥ 5♦ 5♣" -b "9♣ 6♦ 5♥ 5♠ 8♠"
Finished dev [unoptimized + debuginfo] target(s) in 0.05s
Running `target/debug/examples/calc -d '6♠ 6♥ 5♦ 5♣' -b '9♣ 6♦ 5♥ 5♠ 8♠'`
Cards Dealt: 6♠ 6♥ 5♦ 5♣ 9♣ 6♦ 5♥ 5♠ 8♠
[Seat 0: 6♠ 6♥, Seat 1: 5♦ 5♣]
[FLOP: 9♣ 6♦ 5♥, TURN: 5♠, RIVER: 8♠]
The Flop: 9♣ 6♦ 5♥
Chances of winning:
Seat #0 6♠ 6♥: 95.7% - CURRENT HAND: 6♠ 6♥ 6♦ 9♣ 5♥ HandRank { value: 2185, name: ThreeOfAKind, class: ThreeSixes }
Seat #1 5♦ 5♣: 6.0% - CURRENT HAND: 5♥ 5♦ 5♣ 9♣ 6♦ HandRank { value: 2251, name: ThreeOfAKind, class: ThreeFives }
The Nuts would be: 9♣ 8♠ 7♠ 6♦ 5♥ HandRank { value: 1605, name: Straight, class: NineHighStraight }
The Turn: 5♠
Chances of winning:
Seat 0: 2.3% - Outs: 6♣
Seat 1: 97.7% - Best Hand: 5♠ 5♥ 5♦ 5♣ 9♣ HandRank { value: 124, name: FourOfAKind, class: FourFives }
The River: 8♠
Seat 0: 0.0%
Seat 1: 100.0%
Winners:
Seat 1: 5♠ 5♥ 5♦ 5♣ 9♣ HandRank { value: 124, name: FourOfAKind, class: FourFives }
Command:
❯ cargo run --example calc -- -d "6♠ 6♥ 5♦ 5♣" -b "9♣ 6♦ 5♥ 5♠ 8♠"
添加 -n
标志并将添加所有可能的手牌,按强度排序
Possible hands at the flop, sorted by strength:
CKC #1605 9♣ 8♠ 7♠ 6♦ 5♥ HandRank { value: 1605, name: Straight, class: NineHighStraight }
CKC #1996 9♠ 9♥ 9♣ 6♦ 5♥ HandRank { value: 1996, name: ThreeOfAKind, class: ThreeNines }
CKC #2185 6♠ 6♥ 6♦ 9♣ 5♥ HandRank { value: 2185, name: ThreeOfAKind, class: ThreeSixes }
CKC #2251 5♠ 5♥ 5♦ 9♣ 6♦ HandRank { value: 2251, name: ThreeOfAKind, class: ThreeFives }
CKC #3047 9♠ 9♣ 6♠ 6♦ 5♥ HandRank { value: 3047, name: TwoPair, class: NinesAndSixes }
CKC #3058 9♠ 9♣ 5♠ 5♥ 6♦ HandRank { value: 3058, name: TwoPair, class: NinesAndFives }
CKC #3221 6♠ 6♦ 5♠ 5♥ 9♣ HandRank { value: 3221, name: TwoPair, class: SixesAndFives }
CKC #3501 A♠ A♥ 9♣ 6♦ 5♥ HandRank { value: 3501, name: Pair, class: PairOfAces }
CKC #3721 K♠ K♥ 9♣ 6♦ 5♥ HandRank { value: 3721, name: Pair, class: PairOfKings }
CKC #3941 Q♠ Q♥ 9♣ 6♦ 5♥ HandRank { value: 3941, name: Pair, class: PairOfQueens }
CKC #4161 J♠ J♥ 9♣ 6♦ 5♥ HandRank { value: 4161, name: Pair, class: PairOfJacks }
CKC #4381 T♠ T♥ 9♣ 6♦ 5♥ HandRank { value: 4381, name: Pair, class: PairOfTens }
CKC #4471 9♠ 9♣ A♠ 6♦ 5♥ HandRank { value: 4471, name: Pair, class: PairOfNines }
CKC #4836 8♠ 8♥ 9♣ 6♦ 5♥ HandRank { value: 4836, name: Pair, class: PairOfEights }
CKC #5056 7♠ 7♥ 9♣ 6♦ 5♥ HandRank { value: 5056, name: Pair, class: PairOfSevens }
CKC #5122 6♠ 6♦ A♠ 9♣ 5♥ HandRank { value: 5122, name: Pair, class: PairOfSixes }
CKC #5342 5♠ 5♥ A♠ 9♣ 6♦ HandRank { value: 5342, name: Pair, class: PairOfFives }
CKC #5720 4♠ 4♥ 9♣ 6♦ 5♥ HandRank { value: 5720, name: Pair, class: PairOfFours }
CKC #5940 3♠ 3♥ 9♣ 6♦ 5♥ HandRank { value: 5940, name: Pair, class: PairOfTreys }
CKC #6160 2♠ 2♥ 9♣ 6♦ 5♥ HandRank { value: 6160, name: Pair, class: PairOfDeuces }
CKC #6305 A♠ K♠ 9♣ 6♦ 5♥ HandRank { value: 6305, name: HighCard, class: AceHigh }
CKC #6753 K♠ Q♠ 9♣ 6♦ 5♥ HandRank { value: 6753, name: HighCard, class: KingHigh }
CKC #7046 Q♠ J♠ 9♣ 6♦ 5♥ HandRank { value: 7046, name: HighCard, class: QueenHigh }
CKC #7227 J♠ T♠ 9♣ 6♦ 5♥ HandRank { value: 7227, name: HighCard, class: JackHigh }
CKC #7346 T♠ 9♣ 8♠ 6♦ 5♥ HandRank { value: 7346, name: HighCard, class: TenHigh }
CKC #7420 9♣ 8♠ 6♦ 5♥ 4♠ HandRank { value: 7420, name: HighCard, class: NineHigh }
添加 -e
标志并将给出抽牌获胜的概率。 注意 这将花费非常长的时间(改进我)
Seat #0 6♠ 6♥: 81.7%
Seat #1 5♦ 5♣: 20.1%
由于我的 cardpack.rs 库,库对传入字符串的格式非常宽容
❯ cargo run --example calc -- -d "AC 4D Kh 6H Kd TH" -b "7C 3D AS 4C 9d"
其他资源
- Cactus Kev 的扑克手牌评估器
- 仓库
- vsupalov
- HenryRLee/PokerHandEvaluator - 一个高效的扑克牌手评估算法及其实现,支持7张牌扑克和奥马哈扑克评估
- adchari/better-hand - crate
- deus-x-mackina/poker - crate
- Python库treys的移植
- elliottneilclark/rs-poker - crate
- kmurf1999/rust_poker - crate - crate
- 部分基于:OMPEval (C++)
- SKPokerEval (C++)
- TwoPlusTwo 手牌评估器
- XPokerEval - 从codingthewheel.com编译
- ACE_eval (C)
- 部分基于:OMPEval (C++)
- manuelbucher/distributed-cards - crate 实现了心理扑克洗牌算法
- lucasholder/fair - crate CLI工具和库,用于验证证明公平的游戏(百家乐等)。
- davefol/Poker-Range-Trainer
- 一对一
- 文章
- 商业工具
- kaggel - Poker Hold'Em 游戏
- 扑克牌手数据集
- 下载Pluribus(扑克AI)与专业人士对战的10,000次手牌
依赖关系
示例依赖关系
- Clap - 用于calc示例应用程序。
- env_logger
资源
依赖关系
~11–21MB
~265K SLoC