diff options
author | Frederick Yin <fkfd@fkfd.me> | 2023-01-11 15:44:42 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@fkfd.me> | 2023-01-11 15:44:42 +0800 |
commit | c01a05c12636382db64799f3e6184c0b0f269bc6 (patch) | |
tree | 128d94fd5bbb51d4028ce3fbafa072010480101e /Player.hs | |
parent | b26b53b25655eee6254ebae446d606b3943d17af (diff) |
Print penalties at end of round
Diffstat (limited to 'Player.hs')
-rw-r--r-- | Player.hs | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -6,7 +6,7 @@ import qualified Card as C import qualified Color data Player = Player { name :: String - , penalty :: Integer + , penalty :: Int , cards :: [Card] } @@ -35,3 +35,13 @@ showCards (Player _ _ cs) prev att = else join n c else Color.red $ join n c join n c = (show n) ++ ". " ++ (C.showCard c) + +-- | Update penalty for each player after a round. +calcPenalties :: [Player] -> [Player] +calcPenalties plyrs = map penalize plyrs + where penalize (Player n p c) = Player n (p + length c) c + +-- | Pretty print penalties. +showPenalties :: [Player] -> String +showPenalties = unlines . map showPenalty + where showPenalty (Player n p _) = n ++ ":\t" ++ show p |