Deck types, generators, and manipulating functions
An exposed type for decks which are already shuffled.
Make a deck of all the cards in a single suit.
Makes the deck in A-K order
fullSuit Spades == [ Card Spades Ace, Card Spades Two, Card Spades Three, Card Spades Four, Card Spades Five, Card Spades Six, Card Spades Seven, Card Spades Eight, Card Spades Nine, Card Spades Ten, Card Spades Jack, Card Spades Queen, Card Spades King ]Make a deck of all the cards for a single face.
Makes the deck in standard order.
fullFace Ace == [ Card Spades Ace, Card Diamonds Ace, Card Clubs Ace, Card Hearts Ace ]A full 52-card deck in standard order.
fullDeck == Deck [ Card Spades Ace, Card Spades Two, ... ]Create a ShuffledDeck out of a list of cards.
A 52-card deck in randomly shuffled order.
type Msg = ShuffleDeck Deck
Random.generate ShuffleDeck randomDeckDraw a card from a ShuffledDeck.
If the deck is empty, the card returned is Back.
topCard =
case draw (ShuffledDeck fullDeck) of
( top, _ ) ->
top
topCard == Card.new "spades" 1Add a card to the end of the deck.
appendCard (Card Spades Ace) [ Card Spades Three, Card Spades Two ] == [ Card Spades Three, Card Spades Two, Card Spades Ace ]Get the length of the ShuffledDeck
Get the internal list of cards from a ShuffledDeck
Not reccomended for direct use.
Map a function from cards over a ShuffledDeck.
See <Games.Blackjack> for an example use of Deck.map
map (\card -> 1) <| newDeck [ Card Spades Ace, Card Heart King ] == [ 1, 1 ]
map defaultFace <| newDeck [ Card Spades Ace, Card Heart King ] == [ 1, 13 ]Filter a ShuffledDeck by a conditional over cards.
Fold a function over a ShuffledDeck from the right.
Fold a function over a ShuffledDeck from the left.
Take some number of cards from the top of a ShuffledDeck
A representation of an arbitrary deck or hand of cards.