2 个版本
0.1.1 | 2023 年 5 月 31 日 |
---|---|
0.1.0 | 2023 年 5 月 31 日 |
#4 在 #hands
58KB
1K SLoC
pkr
"pkr" 是一个 Rust 库,它提供了建模和评估扑克游戏的基本组件。它包括 Card(牌)、Rank(花色)、Suit(花型)、Deck(牌组)和 Hand(手牌)等基本实体,以及洗牌和发牌的功能。此外,它还提供了一套创建和评估扑克手牌的工具。该库在构建时注重效率,关键性能组件的编写方式旨在最小化不必要的计算。
安装
您可以通过在您的 Cargo.toml
中添加以下内容来下载和使用此库:
[dependencies]
pkr = "0.1.1"
特性
- 使用标准的字符串表示法(例如 "As Ks Qs Js Ts")定义扑克手牌。
- 根据扑克的标准规则评估扑克手牌,包括支持 Straight Flush(同花顺)、Four of a Kind(四条)、Full House(满贯)、Flush(同花)、Straight(顺子)、Three of a Kind(三条)、Two Pair(两对)、One Pair(一对)和 High Card(高牌)等手牌类型。
- 计算扑克手牌的数值得分以进行比较。
- 能够评估由 2 张到 9 张牌组成的扑克手牌。
- 创建一个包含 52 张牌的牌组并洗牌。
示例
创建一个 Hand 结构体
use pkr::hand::Hand;
hand1 = Hand::new_from_str("Ts Js Qs Ks As").unwrap();
这会创建一个 Royal Flush 手牌。
一旦您有了 Hand,您就可以评估其得分
let score1 = hand1.get_score();
这返回一个 u32 类型的得分,代表根据扑克规则计算的手牌价值,使其可比较
hand2 = Hand::new_from_str("As Ad Ah Ac Ks").unwrap();
score2 = hand2.get_score();
assert!(score1 > score2);
请注意,此库尚未处理游戏进程(目前) - 它只是提供了一种评估扑克手牌的方法。
许可证
本项目采用 GNU 通用公共许可证 v3.0。
依赖关系
~2MB
~42K SLoC