clanki-1.0.3: src/Decks.hs
module Decks where
import Card
import Display
import Data.List(delete)
data Deck = Deck {dCards :: [Card], dName :: String} deriving (Show, Eq, Read)
instance Display Deck where
display = dName -- ++ "\n" ++ concat [display card ++ "\n" | card <- dCards deck] ++ "--------"
addCardToDeck :: Card -> Deck -> Deck
addCardToDeck card deck = deck {dCards = dCards deck ++ [card]}
removeCardFromDeck :: Card -> Deck -> Deck
removeCardFromDeck card deck = deck {dCards = delete card (dCards deck)}
allCards :: [Deck] -> [Card]
allCards decks = concat [dCards deck | deck <- decks]
replaceDeckNamed :: String -> Deck -> [Deck] -> [Deck]
replaceDeckNamed deckName deck decks = filter (\d -> dName d /= deckName) decks ++ [deck]