我正在做一个纸牌游戏,有六套可用的套装,但是可以有2-6个玩家,我只想要数量的西装来匹配玩家的数量。
let players = 4
const suits = [1, 2, 3, 4, 5, 6]当然,我想让他们随机出来。
我提出了以下解决方案:
export function getRandomSuits(nrOfPlayers) {
const rangeMin = 1;
const rangeMax = 6;
const amount = nrOfPlayers;
let nums = [];
let getRandomNumber = function() {
return Math.floor((Math.random() * rangeMax) + rangeMin);
}
while (nums.length < amount) {
let nr = getRandomNumber();
var numberExists = _.indexOf(nums, nr);
console.log(numberExists);
if(numberExists < 0) {
nums.push(nr);
}
}
return nums;
}我已经有一段时间没有使用“been循环”这个东西了,所以我对它感到不太舒服。
我的问题是:
发布于 2017-02-13 17:57:07
getRandomNumber()。尽管如此,这仍取决于人们的喜好。
我会说:
导出函数getRandomSuits(nrOfPlayers) { const rangeMin = 1;const rangeMax = 6;设num= [];while (nums.length < nrOfPlayers) { let ( nr = Math.floor((Math.random() * rangeMax) + rangeMin);var numberExists =_.indexOf(num,nr);if(numberExists < 0) { nums.push(nr);}}返回num;}使用临时数组的第二个方法(稍微好一点):
export function getRandomSuits(nrOfPlayers) {
const rangeMin = 1;
const rangeMax = 6;
var tempNum = [];
for(i = 0; i <= rangeMax - rangeMin; i++){
tempNum[i] = rangeMin + i;
}
let nums = [];
while (nums.length < nrOfPlayers) {
let index = Math.floor(Math.random() * tempNum.length);
var numberExists = _.indexOf(nums, tempNum[index]);
if(numberExists < 0) {
nums.push(tempNum[index]);
tempNum.splice(tempNum, index));
}
}
return nums;
}https://stackoverflow.com/questions/42210353
复制相似问题