カード配り問題 その2

カード配り問題 - rikubaの日記の続き。

というわけで

class Cards
  def deal(numPlayers, deck)
    return Array.new(numPlayers) {|i| ""} if numPlayers > deck.size
    deck = deck.scan(/#{"(.)" * numPlayers}/)
    deck.shift.zip(*deck).map &:join
  end
end