我正在用Javascript编写一个简单的BlackJack游戏.到目前为止,我有一个像这样的数组:
var deckArray = [ "card1", "card2",...,"card52" ]
我有一个“交易”功能设置如下:
var deal = function(){
var card = Math.floor(Math.random() * deckArray.length);
return deckArray.splice(card,1)[0];
};
由于我已经使用Math.random从deckArray中随机选择,对我来说如何将Lodash这样的“shuffle”函数加入其中是多余的?
var shuffle = function(){
deckArray = _.shuffle(deckNames);
};
解决方法:
我想会的.使用真卡,我们将牌组洗牌,然后从牌组顶部挑选一些牌.这是您可能正在使用shuffle函数进行的操作,从而对现实世界的使用进行建模.
使用Math.Random(),您将从一个未洗牌的牌组中随机挑选一张牌.这里的关键是随机性(这不是真正的随机顺便说一句).因此,虽然这不是在现实世界使用之后建模的,但最终结果是相同的.
我建议使用Math.Random(),因为它会比使用_.shuffle(Fisher-Yates)算法更快.