From 347cee5089d0d0d3300fa4cfc1ec1181e179ee2b Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Sun, 8 Jan 2023 21:48:32 +0800 Subject: Force special card after attack cards only --- Card.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Card.hs') diff --git a/Card.hs b/Card.hs index 64c74c8..98e76fe 100644 --- a/Card.hs +++ b/Card.hs @@ -47,8 +47,15 @@ isSpecial (Card _ rk) | rk `elem` [Two, Three, Seven, Jack, Queen] = True | otherwise = False +-- | Check if card attacks. +isAttack :: Card -> Bool +isAttack (Card _ rk) + | rk `elem` [Two, Three] = True + | otherwise = False + -- | Check if `card` is valid after `prev`. +-- | If `prev` attacks, `card` must be special. isValid :: Card -> Card -> Bool isValid prev@(Card st' rk') card@(Card st rk) = - match && (not (isSpecial prev) || isSpecial card) + match && (not (isAttack prev) || isSpecial card) where match = (st == st') || (rk == rk') -- cgit v1.2.3