class Rb21::Hand
Constants
- LIMIT
Attributes
cards[R]
Public Class Methods
new()
click to toggle source
# File lib/rb21/hand.rb, line 8 def initialize @cards = [] end
Public Instance Methods
blackjack?()
click to toggle source
# File lib/rb21/hand.rb, line 39 def blackjack? names = @cards.map(&:name) @cards.size == 2 && names.include?(Card::ACE) && (names & Card::TEN_VALUES).size.positive? end
busted?()
click to toggle source
# File lib/rb21/hand.rb, line 35 def busted? value > LIMIT end
clear()
click to toggle source
# File lib/rb21/hand.rb, line 18 def clear @cards.clear end
receive(card)
click to toggle source
# File lib/rb21/hand.rb, line 12 def receive(card) @cards << card @cards.sort_by! { |c| c.value.size } card end
value()
click to toggle source
# File lib/rb21/hand.rb, line 22 def value val = 0 @cards.map { |card| card.value.sort.reverse }.each do |possible_values| possible_values.each_with_index do |possible_value, i| if i + 1 == possible_values.size || val + possible_value <= LIMIT val += possible_value break end end end val end