2 Commits

Author SHA1 Message Date
Quaternions e5c26e35fd add suit from u8 2026-05-18 11:26:39 -07:00
Quaternions 521c2afcda fix deck 2026-05-18 11:26:32 -07:00
+18 -8
View File
@@ -19,19 +19,19 @@ pub trait Game {
/// card_game supports up to 4 identifiably separate decks.
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub enum Deck {
Deck1,
Deck2,
Deck3,
Deck4,
Deck1 = 0b00,
Deck2 = 0b01,
Deck3 = 0b10,
Deck4 = 0b11,
}
impl Deck {
pub const fn new(deck: u8) -> Option<Self> {
use Deck::*;
Some(match deck {
1 => Deck1,
2 => Deck2,
3 => Deck3,
4 => Deck4,
0b00 => Deck1,
0b01 => Deck2,
0b10 => Deck3,
0b11 => Deck4,
_ => return None,
})
}
@@ -46,6 +46,16 @@ pub enum Suit {
}
impl Suit {
pub const SUITS: [Self; 4] = [Self::Spades, Self::Hearts, Self::Clubs, Self::Diamonds];
pub const fn new(suit: u8) -> Option<Self> {
use Suit::*;
Some(match suit {
0b00 => Spades,
0b01 => Hearts,
0b10 => Clubs,
0b11 => Diamonds,
_ => return None,
})
}
/// Is the suit red.
pub const fn is_red(self) -> bool {
self as u8 & 0b01 != 0