4个版本 (2个重大更新)
0.3.1 | 2024年3月28日 |
---|---|
0.3.0 | 2024年3月22日 |
0.2.0 | 2024年3月20日 |
0.1.0 | 2024年3月8日 |
#242 in 数学
每月198次下载
735KB
13K SLoC
♠️ espada
Texas Hold'em扑克赔率评估器。
快速入门
将此添加到Cargo.toml
[dependencies]
espada = "0.1"
在你的 main.rs
或 lib.rs
中,你可以这样使用
use espada::evaluator::FlopExhaustiveEvaluator;
use espada::hand_range::HandRange;
fn main() {
let board = [
Some(Card::new(Rank::Queen, Suit::Spade)),
Some(Card::new(Rank::Eight, Suit::Diamond)),
Some(Card::new(Rank::Deuce, Suit::Heart)),
None,
None
];
let players = vec!["JJ+".parse().unwrap(), "A2s+".parse().unwrap()];
let evaluator = FlopExhaustiveEvaluator::new(&board, &players);
let mut materialized = 0_u32;
let mut wins = vec![0_f32; players.len()];
for showdown in evaluator {
for (player_index, player) in showdown.players().into_iter().enumerate() {
if player.is_winner() {
wins[player_index] += 1.0 / showdown.winner_len() as f32
}
}
materialized += 1;
}
for (player_index, _) in players.into_iter().enumerate() {
println!(
"player {}: {:.2}% eq",
player_index,
wins[player_index] / materialized as f32 * 100.0
);
}
}
许可
依赖项
~2.2–3.5MB
~55K SLoC