Make suit->int and int->suit complete inverses
This commit is contained in:
@@ -45,13 +45,13 @@
|
|||||||
(3 :Spades)
|
(3 :Spades)
|
||||||
(t :Joker)))
|
(t :Joker)))
|
||||||
|
|
||||||
(fn suit->int (item) (-> (suit) (integer 0 4))
|
(fn suit->int (item) (-> (suit) (integer 0 52))
|
||||||
(case item
|
(case item
|
||||||
(:Diamonds 0)
|
(:Diamonds 0)
|
||||||
(:Clubs 1)
|
(:Clubs 13)
|
||||||
(:Hearts 2)
|
(:Hearts 26)
|
||||||
(:Spades 3)
|
(:Spades 39)
|
||||||
(t 4)))
|
(t 52)))
|
||||||
|
|
||||||
(fn int->rank (n) (-> (fixnum) rank)
|
(fn int->rank (n) (-> (fixnum) rank)
|
||||||
(let ((n (mod n 13)))
|
(let ((n (mod n 13)))
|
||||||
@@ -74,13 +74,11 @@
|
|||||||
(make-card :rank (int->rank num)
|
(make-card :rank (int->rank num)
|
||||||
:suit (int->suit num)))
|
:suit (int->suit num)))
|
||||||
|
|
||||||
(fn card->int (card) (-> (card) int-card)
|
(fn card->int (card) (-> (card) fixnum)
|
||||||
(with-slots ((rank rank) (suit suit)) card
|
(with-slots ((rank rank) (suit suit)) card
|
||||||
(let ((rank (rank->int rank))
|
(let ((rank (rank->int rank))
|
||||||
(suit (suit->int suit)))
|
(suit (suit->int suit)))
|
||||||
(->> suit
|
(+ rank suit))))
|
||||||
(* 13)
|
|
||||||
(+ rank)))))
|
|
||||||
|
|
||||||
(fn suit< (s1 s2) (-> (suit suit) boolean)
|
(fn suit< (s1 s2) (-> (suit suit) boolean)
|
||||||
(< (suit->int s1) (suit->int s2)))
|
(< (suit->int s1) (suit->int s2)))
|
||||||
|
|||||||
Reference in New Issue
Block a user