main: a randomised poker hand generator and classifier.

This commit is contained in:
2026-04-01 06:19:35 +01:00
committed by oreodave
parent e5d5e4037f
commit cd09b3b922
3 changed files with 440 additions and 1 deletions

View File

@@ -1,3 +1,37 @@
mod card;
mod classifier;
mod hand;
use card::{make_decks, Card, Rank, Suit};
use classifier::classify;
use rand::seq::SliceRandom;
fn main() {
println!("Hello, world!");
let mut rng = rand::rng();
let mut deck = make_decks(1);
deck.shuffle(&mut rng);
let hand = &mut deck[..5];
// For testing specific examples.
if false {
let _hand = [
Card::new(Rank::Nine, Suit::Diamond),
Card::new(Rank::Ten, Suit::Diamond),
Card::new(Rank::Jack, Suit::Club),
Card::new(Rank::Queen, Suit::Spade),
Card::new(Rank::Two, Suit::Spade),
];
}
hand.sort();
for h in hand.iter() {
print!("{}, ", h);
}
println!();
let hand = classify(&hand);
match hand {
Some(hand) => println!("{}", hand),
None => println!("Not a hand"),
}
}