# # 「カード」を表現するCardクラスを定義する # 通し番号方式バージョン # class Card def initialize() @card = Array.new # 全てのカードを保存する配列 @now = -1 # 今何枚目かをしまう変数 0.upto(51) do |x| # ジョーカー不要なので51まで @card << x end shuffle end def shuffle() srand 0.upto(@card.length-1) do |i| j = rand(@card.length-1) # 交換相手をランダムに選ぶ w = @card[i] @card[i] = @card[j] @card[j] = w end @now = -1# カードの順番 end def Card.suit(card) s = card / 13 ["ハート", "スペード", "ダイヤ", "クラブ"][s] end def Card.n(card) n = card%13 + 1 case n when 1 "A" when 11 "J" when 12 "Q" when 13 "K" else n.to_s end end def next() if @now >= @card.length shuffle() end @card[@now += 1] end end