Added Documentation

Added Test Cases
Added Comments
This commit is contained in:
Jan-Peter von Hunnius 2025-10-02 18:33:31 +02:00
parent ac25a1caea
commit 5c271b279f
42 changed files with 5279 additions and 52 deletions

View file

@ -0,0 +1,40 @@
pub struct HandEncoder;
impl HandEncoder {
pub fn encode_to_meerkat(hand: &[u8]) -> Vec<String> {
hand.iter().map(|&card| Self::print_card(card)).collect()
}
pub fn encode_to_steve_brecher(hand: &[u8]) -> u64 {
let mut result = 0;
for &card in hand.iter() {
result |= 0x1 << ((card % 4) * 13 + (card / 4));
}
result
}
pub fn print_card(card: u8) -> String {
if card == 255 {
return "-".to_string();
}
let rank = card / 4;
let suit = card % 4;
let rank_str = match rank {
0..=7 => (rank + 2).to_string(),
8 => "T".to_string(),
9 => "J".to_string(),
10 => "Q".to_string(),
11 => "K".to_string(),
12 => "A".to_string(),
_ => "?".to_string(),
};
let suit_str = match suit {
0 => "c",
1 => "d",
2 => "s",
3 => "h",
_ => "?",
};
format!("{}{}", rank_str, suit_str)
}
}