module Hand where import Set import Pai data Hand = Hand {getHand::MSet, getCall::[MSet]} max2Win = 7 pairs c (h:hs) = (if length (filter (==h) hs) >= c then 1 else 0) + (pairs $ filter (/=h) hs) pairs c [] = 0 seven h = 7 - (pairs 1 h) mosou h = 14 - (pairs 0 h') - (if pairs 1 h' > 0 then 1 else 0) where h' = filter is19 h costM a b = (sum $ zipWith (snd.sMmin) a b,zipWith (fst.sMmin) a b) sMmin a b = if (a>b) then (a-b,0) else (0,b-a) parseCol xx@(a:b:c:xs) (t,m,p) = concat [] parseCol _ r = return r normal h = cm = where cm = pairs 2 $ filter isCha h cp = (pairs 1 $ filter isCha h) - cm