class CardsLib::Standard::Evaluators::BlackjackEvaluator

Public Class Methods

new(cards) click to toggle source
# File lib/cards_lib/standard/evaluators/blackjack_evaluator.rb, line 5
def initialize(cards)
  @cards = cards
  @reduced_ace_count = 0
end

Public Instance Methods

worth() click to toggle source
# File lib/cards_lib/standard/evaluators/blackjack_evaluator.rb, line 10
def worth
  @worth ||= @cards.map(&:value).inject(:+)
  if @worth > 21
    attempt = reduce_by_ace
    attempt = reduce_by_ace until @worth < 22 || !attempt
  end
  @worth
end

Private Instance Methods

count_aces() click to toggle source
# File lib/cards_lib/standard/evaluators/blackjack_evaluator.rb, line 30
def count_aces
  @cards.count {|c| c.rank == "A"}
end
reduce_by_ace() click to toggle source
# File lib/cards_lib/standard/evaluators/blackjack_evaluator.rb, line 20
def reduce_by_ace
  if count_aces > @reduced_ace_count
    @worth -= 10
    @reduced_ace_count += 1
    true
  else
    false
  end
end