packages feed

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]