【发布时间】:2013-11-30 23:40:01
【问题描述】:
我正在构建一个纸牌游戏,需要在游戏开始前洗牌玩家的牌组。通过在将数组插入数据库之前对其进行改组,可以毫无问题地完成此操作。然而,在游戏开始后,有些情况下玩家需要洗牌。我想到的唯一方法是在再次洗牌后重新插入甲板,但这肯定是无效的。 这是插入前洗牌的代码。
deck = _.shuffle (Card_Reference.find deck_id: hoster.deck).fetch()
_.each deck, (card) ->
Deck.insert
userId: opponent._id
game_id: id
card: card.card
插入后
deck = Deck.find().fetch()
ids = _.pluck deck, "_id"
shuffled = _.shuffle deck
Deck.remove {_id: $in: ids}
_.each shuffled, (card) ->
Deck.insert
userId: opponent._id
game_id: id
card: card.card
这当然是无效和不必要的。 那么,如何洗牌一个集合呢? 谢谢。
【问题讨论】:
-
您是想为所有玩家设置相同的随机播放,还是为每个播放器设置不同的随机播放?
-
@AndrewMao 我想要的是当玩家点击洗牌按钮时,玩家的牌组再次洗牌。
标签: javascript arrays collections coffeescript meteor