制作宾果游戏.如何生成要从一个集合中显示的随机数,而不重复生成和显示哪个数字?



我正在为我正在学习的课程制作一个宾果游戏,任务是从预先设置的 Set((; 生成一个随机选择/元素,显示该随机值(它将是一个字母和数字,例如 G78,所以不是整数(,然后确保在游戏重置之前不会再次调用该数字

到目前为止,我能够生成一个随机数并显示它,但我无法弄清楚如何防止生成器重复它选择显示的集合中的哪个元素

let numbers = new Set();
.add("O65")
.add("O66")
.add("O67")
.add("O68")
.add("O69")
.add("O70")
.add("O71")
.add("O72")
.add("O73")
.add("O74")
.add("O75");
let guess = Array.from(numbers);
let checks = new Array();
function getRandomNumber()
{
function rando()
{
for(let g = guess; g = guess.length; g++)
{
let rand = guess[Math.floor(Math.random() * 
guess.length)];
return rand;
}

}
let num = rando();
document.getElementById('bingo').innerHTML = num;
checks.push(num);
/*if(numbers.has(num))
{
numbers.delete(num);
}*/
}

在这里,我能够生成一个要显示的随机值,但有时我会得到一个已经被调用的值。我不希望这种情况发生,集合中的每个值只应生成并显示一次,直到程序重置或调用整个集合

像这样的东西。将您选择的每个数字添加到"测试"列表中,然后在返回之前进行测试以确保新的随机数不在测试列表中。如果"rand"在测试列表中,请再次致电 rando。如果没有,则返回"兰特">

let test = []
function getRandomNumber()
{
function rando()
{
for(let g = guess; g = guess.length; g++)
{
let rand = guess[Math.floor(Math.random() * 
guess.length)]}
for(m=0; m < test.length; m++){
if (rand == test[m]){
rando()
return false; 
}}
return rand
}
}

}

最新更新