class Shithead::Stack
Attributes
sets[R]
Public Class Methods
new()
click to toggle source
# File lib/shithead/stack.rb, line 4 def initialize @sets = [] end
Public Instance Methods
add(card)
click to toggle source
# File lib/shithead/stack.rb, line 8 def add(card) if empty? || top.value != card.value sets.unshift Shithead::Set.new([card]) else top.add card end end
cards()
click to toggle source
# File lib/shithead/stack.rb, line 16 def cards sets.collect(&:cards).flatten end
clearable?()
click to toggle source
# File lib/shithead/stack.rb, line 20 def clearable? return false if empty? top.value == "10" || top.size >= 4 end
delete(card)
click to toggle source
# File lib/shithead/stack.rb, line 26 def delete(card) sets.each { |set| set.delete card } end
empty?()
click to toggle source
# File lib/shithead/stack.rb, line 30 def empty? sets.empty? end
release_to(stack)
click to toggle source
# File lib/shithead/stack.rb, line 34 def release_to(stack) sets.each { |set| set.release_to stack } sets.clear end
size()
click to toggle source
# File lib/shithead/stack.rb, line 39 def size sets.sum &:size end
to_s()
click to toggle source
# File lib/shithead/stack.rb, line 47 def to_s sets.first && sets.first.to_s end
top()
click to toggle source
# File lib/shithead/stack.rb, line 43 def top sets.first end