aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/model.lisp12
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