diff options
Diffstat (limited to 'Player.hs')
-rw-r--r-- | Player.hs | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -3,6 +3,7 @@ module Player where import qualified Data.List as L import Card (Card) import qualified Card as C +import qualified Color data Player = Player { name :: String , penalty :: Integer @@ -24,6 +25,13 @@ draw :: Player -> [Card] -> Player draw (Player n p cs) cs' = Player n p $ L.sort (cs' ++ cs) -- | Show player's cards, e.g. "1. Spade 2" -showCards :: Player -> String -showCards (Player _ _ cs) = - unlines $ zipWith (\i c -> (show i) ++ ". " ++ C.showCard c) [1..] cs +showCards :: Player -> Card -> String +showCards (Player _ _ cs) prev = + unlines $ zipWith joinAndColorize [1..] cs + where joinAndColorize n c = + if C.isValid prev c + then if C.isSpecial c + then Color.green $ join n c + else join n c + else Color.red $ join n c + join n c = (show n) ++ ". " ++ (C.showCard c) |