module Yahtzee::Scoring

Public Instance Methods

reduce_values_from_hash(hash) click to toggle source
# File lib/scoring.rb, line 42
def reduce_values_from_hash(hash)
  hash.values.compact.reduce(:+)
end
score(dice, placement, &updater) click to toggle source
# File lib/scoring.rb, line 21
def score(dice, placement, &updater)
  value = send("score_#{placement.to_s}", dice)
  updater.call(placement, value)
end
score_game_total(scores, &updater) click to toggle source
# File lib/scoring.rb, line 37
def score_game_total(scores, &updater)
  value = reduce_values_from_hash(scores)
  updater.call(:game_total, value)
end
score_subtotal(scores, placement, &updater) click to toggle source
# File lib/scoring.rb, line 26
def score_subtotal(scores, placement, &updater)
  value = reduce_values_from_hash(scores)
  updater.call(placement, value)
end
score_upper_total(scores, &updater) click to toggle source
# File lib/scoring.rb, line 31
def score_upper_total(scores, &updater)
  subtotal = reduce_values_from_hash(scores)
  bonus = subtotal >= 63 ? 35 : 0
  updater.call(:upper_total, bonus+subtotal)
end