summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2023-01-04 20:47:59 +0800
committerFrederick Yin <fkfd@fkfd.me>2023-01-04 20:47:59 +0800
commit01148a563d4739573b08f7a2ee80078a90232fd6 (patch)
treece505b859668b17270cc65d28957e9e9ad95d749
parent6a8ff0ff2a09e7fe896d5fff3dda047bef6d1ced (diff)
Add showCard
-rw-r--r--Card.hs10
-rw-r--r--Main.hs4
2 files changed, 12 insertions, 2 deletions
diff --git a/Card.hs b/Card.hs
index c0a13a8..3ba3ce1 100644
--- a/Card.hs
+++ b/Card.hs
@@ -8,6 +8,16 @@ data Rank = Two | Three | Four | Five | Six | Seven | Eight
deriving (Show, Eq, Ord, Enum)
data Card = Card { suit :: Suit, rank :: Rank } deriving (Show, Eq, Ord)
+-- | Pretty print a card.
+showCard :: Card -> String
+showCard (Card st rk) = (show st) ++ " " ++ (rkStr)
+ where rkStr = case rk of
+ Jack -> "J"
+ Queen -> "Q"
+ King -> "K"
+ Ace -> "A"
+ _ -> show $ fromEnum rk + 2
+
-- | Produce one full 52-deck.
fullDeck = [Card st rk | st <- allSuits, rk <- allRanks]
where allSuits = enumFrom $ toEnum 0
diff --git a/Main.hs b/Main.hs
index b858907..e42a3f0 100644
--- a/Main.hs
+++ b/Main.hs
@@ -1,6 +1,6 @@
import System.Random (getStdGen)
-import Card (fullDecks, shuffle)
+import Card (fullDecks, showCard, shuffle)
main = do
gen <- getStdGen
- print $ shuffle gen $ fullDecks 1
+ print $ map showCard $ shuffle gen $ fullDecks 2