トランプ配り

10分でコーディングに挑戦した。
無駄ばかりのプログラムで25分かかってしまった。


ちょっとマシなのを考えてみた。

Cards = {
  deal: function(numPlayers, deck)
  {
    var players = [];

    if (numPlayers > deck.length)
    {
      for (var i = 0; i < numPlayers; i++)
      {
        players[i] = '';
      }
    }
    else
    {
      for (var i = 0; i < numPlayers; i++)
      {
        players[i] = [];
      }

      // 余剰カードを無視し、String -> Array 変換
      deck = deck.substr(0, deck.length - deck.length % numPlayers).split('');

      // Player毎にカード取得
      players = players.map(function(player, i)
      {
        // カード配列から自分のカードを取得
        return deck.filter(function(card, j){ return j % numPlayers == i; }).join('');
      })
    }

    return players;
  }
}

console.log(Cards.deal(4, "123123123"));