class Rb21::Deck

Attributes

cards[R]

Public Class Methods

new() click to toggle source
# File lib/rb21/deck.rb, line 7
def initialize
  @cards = []
  @discarded = []
  build
end

Public Instance Methods

draw() click to toggle source
# File lib/rb21/deck.rb, line 13
def draw
  raise "Draw pile is empty" if empty?
  (@discarded << @cards.shift).last
end
empty?() click to toggle source
# File lib/rb21/deck.rb, line 18
def empty?
  @cards.size.zero?
end
reshuffle() click to toggle source
# File lib/rb21/deck.rb, line 22
def reshuffle
  raise "The deck is not empty" unless @cards.size.zero?
  @cards = @discarded
  @discarded = []
  @cards.shuffle!
end

Private Instance Methods

build() click to toggle source
# File lib/rb21/deck.rb, line 31
def build
  Card::SUITS.each do |suit|
    Card::ALL_NAMES.each do |name|
      @cards << Card.new(name, suit)
    end
  end
  @cards.shuffle!
end