Stack クラス

Stack クラスには、以下のメソッドがあります。

  • initialize
  • shuffle
  • next
  • size

class Stack
  #定数
  #なし

  #クラス変数
  #なし

  #クラスメソッド
  #なし

  #インスタンスメソッド
  def initialize(ndeck)
    #インスタンス変数
    @stack = Array.new#カードの山

    deck = Array.new#1 組 52 枚のカード

    for s in ['S', 'H', 'D', 'C']#spade, heart, diamond, club
      1.upto(9) do |n|
        deck.push(s + 0.to_s + n.to_s)
      end
      10.upto(13) do |n|
        deck.push(s +          n.to_s)
      end
    end

    0.upto(ndeck - 1) do
      deck.each do |x|
        @stack.push(x)
      end
    end
  end

  def shuffle()
    if (RUBY_VERSION >= '1.8.7')
      @stack.shuffle!
    else
      @stack = @stack.sort_by{rand}
    end
  end

  def next()
    return(@stack.shift)
  end

  def size()
    return(@stack.size)
  end

  #アクセスメソッド(アクセサ)
  #なし
end