Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Card = Struct.new(:suit, :rank) do
- include Comparable
- def precedence ; [SUITS_SCORES[self.suit], RANKS_SCORES[self.rank]] end
- def rank_precedence ; RANKS_SCORES[self.rank] end
- def suit_precedence ; SUITS_SCORES[self.rank] end
- def <=>(other) ; self.precedence <=> other.precedence end
- def to_s ; "#{self.suit}#{self.rank}" end
- end
- Hand = Struct.new(:cards) do
- def sort ; Hand[self.cards.sort] end
- def sort_by_rank ; Hand[self.cards.sort_by(&:rank_precedence)] end
- def to_s ; self.cards.map(&:to_s).join(', ') end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement