diff options
Diffstat (limited to 'webapp/src/card.rs')
| -rw-r--r-- | webapp/src/card.rs | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/webapp/src/card.rs b/webapp/src/card.rs index 174676f..3b2fc24 100644 --- a/webapp/src/card.rs +++ b/webapp/src/card.rs @@ -184,16 +184,24 @@ mod tests { } } -pub fn shuffle_deck<R>(rng: &mut R) -> (Vec<Card>, Vec<Card>, Vec<Card>, Vec<Card>) +#[derive(Debug, PartialEq, Eq)] +pub struct Deal { + pub north: Vec<Card>, + pub west: Vec<Card>, + pub south: Vec<Card>, + pub east: Vec<Card>, +} + +pub fn deal<R>(rng: &mut R) -> Deal where R: Rng, { let mut deck = make_deck(); deck.shuffle(rng); let mut deck = deck.iter(); - let n = deck.by_ref().take(13).cloned().collect(); - let w = deck.by_ref().take(13).cloned().collect(); - let s = deck.by_ref().take(13).cloned().collect(); - let e = deck.by_ref().take(13).cloned().collect(); - (n, w, s, e) + let north = deck.by_ref().take(13).cloned().collect(); + let west = deck.by_ref().take(13).cloned().collect(); + let south = deck.by_ref().take(13).cloned().collect(); + let east = deck.by_ref().take(13).cloned().collect(); + Deal { north, west, south, east } } |
