我正在为一所学校制作STEM游戏,我随机挑选问题数字。有30个问题,但我只想要使用其中的20个。我需要它从1-30(No 0)中随机选择一个数字并将每个随机数设置为某个变量。但我无法弄清楚如何使它不会使用相同的数字两次。有什么帮助吗?
到目前为止我得到的代码:
function onLoad() {
var N1 = Math.floor(Math.random() * 30) + 1;
var N2 = Math.floor(Math.random() * 30) + 1;
var N3 = 0;
var N4 = 0;
var N5 = 0;
var N6 = 0;
var N7 = 0;
var N8 = 0;
var N9 = 0;
var N10 = 0;
var N11 = 0;
var N12 = 0;
var N13 = 0;
var N14 = 0;
var N15 = 0;
var N16 = 0;
var N17 = 0;
var N18 = 0;
var N19 = 0;
var N20 = 0;
//Make it so each one is checked so that the same question is not used
//N1 is gonna be the first question and does not need to be check
//N2-N20 need to make sure they aren't the same as N1-N20
if (N2 == N1) {
N2 = Math.floor(Math.random() * 30) + 1;
}
}
我对检查器有一个很好的想法,但是如果它在开始时是相同的,并且我有它产生一个新的数字它将是相同的数字并且搞乱游戏。
答案 0 :(得分:1)
首先,您需要生成数字1-30的数组,然后随机播放数组,然后您可以检索数组中的前20个数字。
function getRandomQuestionNumbers() {
var numbers = [];
for (var i = 1; i <= 30; i++) {
numbers.push(i);
}
shuffle(numbers);
return numbers.slice(0, 20);
}
要获得良好的shuffle
功能,请使用this question的最佳答案之一。