我很难找到一个优雅的红宝石方式来做到这一点。我有一个带有52个Card
对象的 deck 数组,我想迭代它并循环遍历Player
个对象的数组,一次将一张卡交给他们的< em> hand 数组。类似的东西:
deck = Card.deck.shuffle!
deck.each do |card|
@players.NEXTELEMENT.hand << card
end
其中NEXTELEMENT
将产生下一个元素,并在遇到结束时返回到数组的开头。我尝试将这样的方法添加到Array,但是我得到了一个LocalJumpError。
感谢。
答案 0 :(得分:3)
根据球员的数量来修改你所在的牌。
num_players = @players.size
deck.each_with_index do |card,index|
@players[ index % num_players ].hand << card
end
答案 1 :(得分:2)
怎么样
deck.each_slice(@players.size) do |cardSet|
@players.zip(cardSet).each {|player,card| player << card}
end