Javascript 试图产生&;显示宾果游戏的非重复随机值
我正在做宾果游戏。我已经能够在点击一个按钮时生成并显示一个随机数。我唯一的问题是一些值最终会被多次生成。这就是我发布这个问题的原因。在游戏重置之前,每个值只能生成和显示一次。有没有人有任何示例代码,最好是关于如何使用我经常听到的splice()方法 我已经可以从集合中生成随机数并显示它。我只是想确保生成的数字不会重复Javascript 试图产生&;显示宾果游戏的非重复随机值,javascript,arrays,random,shuffle,non-repetitive,Javascript,Arrays,Random,Shuffle,Non Repetitive,我正在做宾果游戏。我已经能够在点击一个按钮时生成并显示一个随机数。我唯一的问题是一些值最终会被多次生成。这就是我发布这个问题的原因。在游戏重置之前,每个值只能生成和显示一次。有没有人有任何示例代码,最好是关于如何使用我经常听到的splice()方法 我已经可以从集合中生成随机数并显示它。我只是想确保生成的数字不会重复 答对 了 设数字=新集合() .加入(“B1”) .添加(“B2”) .添加(“B3”) .添加(“B4”) .添加(“B5”) .添加(“B6”) .添加(“B7”) .添
答对 了
设数字=新集合()
.加入(“B1”)
.添加(“B2”)
.添加(“B3”)
.添加(“B4”)
.添加(“B5”)
.添加(“B6”)
.添加(“B7”)
.添加(“B8”)
.添加(“B9”)
.添加(“B10”);
let called=Array.from(数字);
let display=新数组();
函数getRandomNum()
{
函数rando()
{
for(设i=called.length-1;i>0;i++)
{
const j=Math.floor(Math.random()*称为.length);
常数编号=被叫[i];
被叫[i]=被叫[j];
被叫[j]=数;
返回号码;
//let show=called[Math.floor(Math.random()*called.length)];
//回归演出;
}
//document.getElementById('bingo').innerHTML=display[0];
}
设index=rando();
document.getElementById('bingo').innerHTML=index;
显示、推送(索引);
}
函数show()
{
for(设n=0;n ”+显示[n]+“
”;
}
}
随机数
电话号码
如果希望获得一些帮助以防止重复生成的数字(首选示例代码)您可以创建一个数组,在其中存储所有已选择的数字。然后,当随机选择一个新数字时,继续随机化,直到选择了一个不在已选择数字数组中的数字 下面是一个代码示例,说明了这个想法,选择0到9之间的数字,不允许重复数字。这个过程被分解如下
var alreadyPicked = [];
var max = 10;
function random() {
let unique = false;
while (!unique && alreadyPicked.length < max) {
let randNumber = Math.floor(Math.random() * max);
if (alreadyPicked.includes(randNumber) == false) {
unique = true;
alreadyPicked.push(randNumber);
}
}
}
var alreadyPicked=[];
var max=10;
函数随机(){
让唯一=错误;
而(!unique&&alreadyPicked.length
alreadyPicked
。它用于跟踪哪些数字已经被选中,这样它们就不会被选中两次max
。当没有更多的随机数可供选择时,它用于防止无限循环while
循环中选择随机数,循环直到unique
布尔值设置为true
或直到alreadyPicked
数组的长度达到max
长度,当没有更多的唯一数字可供选择时,就会发生这种情况alreadyPicked.includes(randNumber)
检查randNumber
是否在那些已经选择并存储在alreadyPicked
中的数字中unique
然后设置为true以中断循环,并将数字推送到alreadyPicked
,这样就不会再次选择该数字
答对 了
让数字=[“B1”、“B2”、“B3”、“B4”、“B5”、“B6”、“B7”、“B8”、“B9”、“B10”]
让显示=[];
函数getRandomNum(){
函数rando(){
对于(变量i=0;i ”+显示[n]+“
”;
}
}
跑
var alreadyPicked = [];
var max = 10;
function random() {
let unique = false;
while (!unique && alreadyPicked.length < max) {
let randNumber = Math.floor(Math.random() * max);
if (alreadyPicked.includes(randNumber) == false) {
unique = true;
alreadyPicked.push(randNumber);
}
}
}