我正在嘗試做一個賓果遊戲的樂趣。我已經在很多地方尋找獨特的發電機,但我似乎無法找到一個。我試圖讓自己的,但一旦它實際上擊中一個數字是一樣的,它會造成無限循環。我試過了一個簡單的代碼,理論上應該可以工作,但由於某些原因,事情會通過。我能做什麼!?獨特的隨機數字發生器Javascript
var bc = [];
for (var i = 0; i < 5; i++) {
var r = Math.floor(Math.random()*20+1) + 0;
if(!(r in bc)){
bc.push(r);
}
else
{
i--;
}
}
____________________________________________
____________________________________________
____________________________________________
b1=0;
b2=0;
b3=0;
b4=0;
b5=0;
var bc = [b1,b2,b3,b4,b5]
var bnc = function(){
var n = Math.floor(Math.random() * 5+1)+0;
var n2 = Math.floor(Math.random() * 5+1)+0;
b1 = n;
var a1 = true;
var as = false;
while(a1){
var c = n;
if(c===b1||c===0 ||as!==false){
c = n2;
as=true;
}
if(c===b1||c===0&&as===true){
c = n;
as=false;
}
if(c!=b1){
b2 = c;
a1 = false;
a2 = true;
}
}
};
bnc();
console.log("new1");
console.log(b1,b2,b3,b4,b5);
//_______________________________________
var bnc2 = function(){
var n = Math.floor(Math.random() * 5+1)+0;
var n2 = Math.floor(Math.random() * 5+1)+0;
var a1 = true;
var as = false;
while(a1){
var c = n;
if(c===b1||c===b2||c===0&&as===false){
c = n2;
as=true;
}
if(c===b1||c===b2||c===0&&as===true){
c = n;
as=false;
}
if(c!=b1&&c!=b2){
b3 = c;
console.log("made it 1");
a1 = false;
}
}
};
bnc2();
console.log("new2");
console.log(b1,b2,b3,b4,b5);
對於函數由於代碼太多而應該做些什麼的評論和/或描述,並不是完全錯誤。你想生成一個唯一的隨機序列?它似乎是很多代碼只是爲了... – apelsinapa 2013-03-23 08:18:54
如果你需要一個獨特的隨機數,你可以很容易地適應這些答案之一:http://stackoverflow.com/questions/105034/how-to-create-a- guid-uuid-in-javascript – Kane 2013-03-23 08:20:41
提示你的第一個'for'循環:'in'運算符不會做你認爲它做的事(它測試屬性名稱,而不是屬性值)。 – nnnnnn 2013-03-23 08:29:18