Initial
This commit is contained in:
commit
eae41ba556
1 changed files with 56 additions and 0 deletions
56
Magic.hs
Normal file
56
Magic.hs
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
module Magic where
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Mana
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data Color = Colorless
|
||||||
|
| Black
|
||||||
|
| White
|
||||||
|
| Red
|
||||||
|
| Blue
|
||||||
|
| Green
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
data Mana = Mana Int Color
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
data Cost = Cost [Mana]
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
converted :: Cost -> Int
|
||||||
|
converted (Cost []) = 0
|
||||||
|
converted (Cost cost) = (foldl (\t (Mana x _) -> t + x) 0) cost
|
||||||
|
|
||||||
|
converted_card :: Card -> Int
|
||||||
|
converted_card (Card _ _ cost) = converted cost
|
||||||
|
|
||||||
|
color :: Color -> Cost -> Int
|
||||||
|
color c (Cost cost) = converted (Cost (filter (\(Mana _ col) -> col == c) cost))
|
||||||
|
|
||||||
|
pretty :: Cost -> String
|
||||||
|
pretty c = concat ( [show (color Colorless c)
|
||||||
|
, replicate (color Black c) 'B'
|
||||||
|
, replicate (color White c) 'W'
|
||||||
|
, replicate (color Red c) 'R'
|
||||||
|
, replicate (color Blue c) 'U'
|
||||||
|
, replicate (color Green c) 'G'
|
||||||
|
])
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Cards
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data Rarity = Land
|
||||||
|
| Common
|
||||||
|
| Uncommon
|
||||||
|
| Rare
|
||||||
|
| Mythic
|
||||||
|
| Special
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
data Card = Card Rarity String Cost
|
||||||
|
deriving (Show, Eq)
|
||||||
|
|
||||||
|
deck = (replicate 13 (Card Land "Swamp" (Cost []))) ++ (replicate 13 (Card Land "Plains" (Cost [])))
|
||||||
|
++ replicate 4 (Card Mythic "Jace Beleren" (Cost [Mana 1 Colorless, Mana 2 Blue]))
|
Loading…
Reference in a new issue