main.rs
1 mod deck; // Declare the `deck` module (located at src/deck.rs) 2 mod enums; 3 use rand::seq::SliceRandom; 4 use rand::thread_rng; 5 6 use crate::deck::Card; 7 use crate::enums::{cards::CardValue, suits::Suit}; 8 9 fn main() { 10 let ace_of_spades = Card { value: CardValue::Ace, suit: Suit::Spades }; 11 let ace_of_hearts = Card { value: CardValue::Ace, suit: Suit::Hearts }; 12 let king_of_spades = Card { value: CardValue::King, suit: Suit::Spades }; 13 14 assert!(ace_of_spades > ace_of_hearts); // Same value, higher suit 15 assert!(ace_of_spades > king_of_spades); // Higher value 16 assert!(ace_of_hearts == ace_of_hearts); // Same card 17 let mut deck = crate::deck::Deck::new(); 18 println!("Generated deck with {} cards", deck.cards.len()); 19 20 let mut rng = thread_rng(); 21 deck.cards.shuffle(&mut rng); 22 // Print first 5 cards 23 for card in deck.cards.iter() { 24 println!("{}", card); 25 } 26 27 println!("{}",deck.cards.len()); 28 let c = deck.take_top().unwrap(); 29 println!("{}",deck.cards.len()); 30 println!("{}", c) 31 32 }