Jump to content

Playing cards: Difference between revisions

m
(→‎{{header|Rust}}: fixed broken Code, not exactly elegant, but working)
m (→‎{{header|Rust}}: simplified)
Line 3,622:
 
#[derive(Copy, Clone, Debug)]
enum Pip { Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King }
enum Pip {
Ace,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King
}
 
#[derive(Copy, Clone, Debug)]
enum Suit { Spades, Hearts, Diamonds, Clubs }
Spades,
Hearts,
Diamonds,
Clubs
}
 
#[derive(Copy, Clone, Debug)]
struct Card {
pip: Pip,
suit: Suit
}
 
impl Card {
fn new(pip: Pip, suit: Suit) -> Card {
Card {pip: pip, suit: suit}
}
}
 
Line 3,664 ⟶ 3,638:
}
 
#[derive(Clone, Debug)]
struct Deck(Vec<Card>);
 
Line 3,672 ⟶ 3,645:
for &suit in &[Spades, Hearts, Diamonds, Clubs] {
for &pip in &[Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King] {
cards.push( Card{pip::new( pip, suit): suit} );
}
}
Line 3,684 ⟶ 3,657:
fn shuffle(&mut self) {
rand::thread_rng().shuffle(&mut self.0)
}
}
 
impl fmt::Display for Deck {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
for card in self.0.iter() {
write!(f, "{}, ", card);
}
write!(f, "")
}
}
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.