1 个不稳定版本
0.1.0 | 2023 年 9 月 17 日 |
---|
#646 在 命令行界面
23KB
380 行
POKER FACE - ♥️♦️♣️♠️
Poker-Face 是一个 Rust 虚拟主义练习实现的德克萨斯扑克引擎。它使用典型的 Rust match 控制流结构评估 5 张牌的手牌等级。它通过使用数组匹配和结构匹配来检查属性,确定 5 张牌手牌的等级 MatchHandEvaluator。
作为二进制文件的库使用示例
Poker Face 0.1.0 - 🦀 for ♠️ ♣️ ♥️ ♦️
Prehashing cards...
1. Let's shuffle a deck...
J♥️ 7♠️ 9♠️ 10♥️ 5♥️ K♦️ K♣️ K♥️ Q♦️ 6♥️ 3♥️ J♦️ 4♥️
A♦️ J♣️ 9♣️ 5♠️ 2♠️ 4♣️ 5♦️ 3♦️ 5♣️ 6♦️ J♠️ Q♠️ 4♠️
10♠️ 7♣️ 9♥️ 7♥️ 9♦️ 3♠️ A♣️ A♥️ 7♦️ 2♦️ 10♣️ 6♣️ 4♦️
K♠️ A♠️ 8♣️ 8♥️ Q♥️ 8♦️ 2♣️ 2♥️ 3♣️ Q♣️ 6♠️ 8♠️ 10♦️
2. Let's take (actually, borrow) 2 hands of 5 cards each from the deck
Player 1 has: J♥️ 7♠️ 9♠️ 10♥️ 5♥️
Player 2 has: K♦️ K♣️ K♥️ Q♦️ 6♥️
3. Let's evaluate the hands...
Sorted: J♥️ 10♥️ 9♠️ 7♠️ 5♥️
Sorted: K♥️ K♣️ K♦️ Q♦️ 6♥️
Player 1 has a [HighCard with a highcard of value J♥️]
Player 2 has a [ThreeOfAKind]
4. Celebrate the winner:
The winner is Player 2!
作为库,有一些实用的宏(newcard!、hand!、assert_rank!)用于处理牌、手牌和等级。示例
assert_rank!(hand!["Ad","Kd","Qd","Jd","10d"], Rank::RoyalFlush);
assert_rank!(hand!["Kd", "Kh", "Kc", "Ks", "Qd"], Rank::FourOfAKind);
assert_rank!(hand!["2d", "2h", "Qc", "Qs", "Qd"], Rank::FullHouse);
或
assert_eq!(newcard!["Ah"], Card::new(14, Suit::Hearts));
执行
要从 cargo 运行它,只需输入
cargo run -q --
或从代码构建和安装一个版本
cargo build --release
cargo install --path .
./target/release/poker-face
贡献
如果您有任何功能建议(例如,要实现的功能),或者如果您在代码、设计、界面等中发现任何问题,请随时在我们的 GitHub 上分享。
我非常感谢您的反馈!
依赖项
~7–9.5MB
~168K SLoC