class OfcpScoring::HandCategorizer

Public Class Methods

new(organizer = OfcpScoring::HandOrganizer.new) click to toggle source
# File lib/ofcp_scoring/hand_categorizer.rb, line 3
def initialize(organizer = OfcpScoring::HandOrganizer.new)
  @organizer = organizer
end

Public Instance Methods

categorize(hand) click to toggle source
# File lib/ofcp_scoring/hand_categorizer.rb, line 7
def categorize(hand)
  return "" if hand.nil?

  organized_hand = @organizer.organize(hand)

  categorization = OfcpScoring::HighCard
  categorization = OfcpScoring::Pair if organized_hand.two_cards_match?
  categorization = OfcpScoring::TwoPair if organized_hand.two_different_cards_match?
  categorization = OfcpScoring::ThreeOfAKind if organized_hand.three_cards_match?

  unless organized_hand.three_card_hand?
    categorization = OfcpScoring::Straight if organized_hand.ranks_in_order?
    categorization = OfcpScoring::Flush if organized_hand.all_suits_match?
    categorization = OfcpScoring::FullHouse if organized_hand.three_cards_match? && organized_hand.two_cards_match?
    categorization = OfcpScoring::FourOfAKind if organized_hand.four_cards_match?
    categorization = OfcpScoring::StraightFlush if organized_hand.all_suits_match? && organized_hand.ranks_in_order?
    categorization = OfcpScoring::RoyalFlush if organized_hand.all_suits_match? && organized_hand.ranks_in_order? && organized_hand.high_card_ace?
  end

  return categorization.new(organized_hand)

end