|
|
|
@@ -177,7 +177,7 @@ compareRender trump c1@(Card tp1 col1) c2@(Card tp2 col2) = |
|
|
|
EQ -> compare col1 col2 |
|
|
|
v -> v |
|
|
|
(False, False) -> case compare col1 col2 of |
|
|
|
EQ -> compare tp1 tp2 |
|
|
|
EQ -> compareTypes trump tp1 tp2 |
|
|
|
v -> v |
|
|
|
_ -> compare trp1 trp2 |
|
|
|
where trp1 = isTrump trump c1 |
|
|
|
@@ -198,12 +198,15 @@ compareTypes None tp1 tp2 = compare (toNullType tp1) (toNullType tp2) |
|
|
|
toNullType Ace = NAce |
|
|
|
compareTypes _ tp1 tp2 = compare tp1 tp2 |
|
|
|
|
|
|
|
-- | ascending sort of cards, depending on turn colour |
|
|
|
sortCards :: HasCard c => Trump -> Maybe TurnColour -> [c] -> [c] |
|
|
|
sortCards trump turnCol cs = sortBy f cs |
|
|
|
where f c1 c2 = compareCards trump turnCol (toCard c1) (toCard c2) |
|
|
|
|
|
|
|
-- | descending sort of cards, independent of turn colour |
|
|
|
sortRender :: HasCard c => Trump -> [c] -> [c] |
|
|
|
sortRender trump cs = sortBy f cs |
|
|
|
-- note: reversed order of c1 and c2 to get a descending sort |
|
|
|
where f c1 c2 = compareRender trump (toCard c2) (toCard c1) |
|
|
|
|
|
|
|
highestCard :: HasCard c => Trump -> Maybe TurnColour -> [c] -> c |
|
|
|
|