diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-14 23:23:39 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-14 23:24:16 +0000 |
commit | 8f23358d3e26f0d4463964f41104b20d96b05bd5 (patch) | |
tree | 8fe42a3487af63209e4a2105243bddeae73befb0 /src | |
parent | 77d344a42fef1a49418a899708db073a394a066e (diff) | |
download | cantedraw-8f23358d3e26f0d4463964f41104b20d96b05bd5.tar.gz cantedraw-8f23358d3e26f0d4463964f41104b20d96b05bd5.tar.bz2 cantedraw-8f23358d3e26f0d4463964f41104b20d96b05bd5.zip |
Rework card< comparator to make Jokers the top of the hierarchy
Diffstat (limited to 'src')
-rw-r--r-- | src/model.lisp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/model.lisp b/src/model.lisp index 5652b9c..ff9b7ad 100644 --- a/src/model.lisp +++ b/src/model.lisp @@ -86,9 +86,15 @@ (fn card< (c1 c2) (-> (card card) boolean) (destructuring-bind ((r1 . s1) (r2 . s2)) (list c1 c2) - (if (eq r1 r2) - (suit< s1 s2) - (rank< r1 r2)))) + (cond + ;; Check for jokers! + ((and (eq s1 :Joker) + (eq s2 :Joker)) + (rank< r1 r2)) + ((eq s1 :Joker) nil) + ((eq s2 :Joker) t) + ((eq r1 r2) (suit< s1 s2)) + (t (rank< r1 r2))))) (fn suit->str (suit) (-> (suit) string) (case suit |