2011-11-18 59 views
0

生成5張不同的不可重複的隨機數,請告訴我如何在JavaScript的unity3d在unityscript

產生1,20之間的5個不同的非重複的隨機數這一點,我已經寫了代碼..這部作品1日3次,但最後一次崩潰。請告訴我如何即興創作這個我已經在數組中使用數字在屏幕上打印它們並檢查其可重複性。這工作ly 3次..第四次統一崩潰。我知道原因不知道如何解決它..我認爲這是因爲它無法檢測到陣列的剩餘數量。請告訴我哪裏出了問題..我是新來的團結。

var temp : int = 0; 
var array = new Array(); 
var count : int = 0; 
var n : int = 0; 
var b : int = 0; 
var num = new Array(); 
var num1 : int = 0; 
var num2 : int = 0; 
var num3 : int = 0; 
var num4 : int = 0; 
var num5 : int = 0; 

var number1 : GUIText; 
var number2 : GUIText; 
var number3 : GUIText; 
var number4 : GUIText; 
var number5 : GUIText; 

function Start() { 

if((temp == 0) || (temp ==20)) 
{ 
    //for(a=1;a<=20;a++) 
    //{ 
     temp=0; 
     array[1]=1; 
     array[2]=2; 
     array[3]=3; 
     array[4]=4; 
     array[5]=5; 
     array[6]=6; 
     array[7]=7; 
     array[8]=8; 
     array[9]=9; 
     array[10]=10; 
     array[11]=11; 
     array[12]=12; 
     array[13]=13; 
     array[14]=14; 
     array[15]=15; 
     array[16]=16; 
     array[17]=17; 
     array[18]=18; 
     array[19]=19; 
     array[20]=20; 
     //array[1]=a; 

    //} 

} 

}

function OnGUI() 
{ 

if (GUI.Button (Rect (100,200,100,100), "Click Me")) 
{ 
    count=0; 
    //print(count); 
    genrandom() ; 
    for(a=1;a<=6;a++) 
    { 
     //print("A is"+a); 
     genrandom() ; 
     temp++; 
     count=count+1; 
     //print("Count is :"+count); 
     if(count>=6){count = 0;} 
    } 
    } 
    } 

function genrandom() 
{ 
//temp++; 
//print(temp); 
if(count<=5) 
{ 
    n = Random.Range(1,20); 
    //print("N is"+n); 

    if(array[n]!=0) 
    { 

     if(count==1) 
     { 
     print("Count is 1"); 
     num1 = array[n]; 
     array[n]=0; 
     number1.text = ""+num1; 
     //count++; 
     } 
     if(count==2) 
     { 
     print("Count is 2"); 
     num2 = array[n]; 
     array[n]=0; 
     number2.text = ""+num2; 
     //count++; 
     } 
     if(count==3) 
     { 
     print("Count is 3"); 
     num3 = array[n]; 
     array[n]=0; 
     number3.text = ""+num3; 
     //count++; 
     } 
     if(count==4)  
     { 
     print("Count is 4"); 
     num4 = array[n]; 
     array[n]=0; 
     number4.text = ""+num4; 
     //count++; 
     } 
     if(count==5) 
     { 
     print("Inside count= 5"); 
     num5 = array[n]; 
     array[n]=0; 
     number5.text = ""+num5; 
     //count++; 
     } 
    } 
    else 
    { 
     genrandom(); 
    } 

} 
} 

回答

2

一種方式去了解這將是創建可能值的陣列,將它洗,並期待在第一五行:

+1

但數字重複..數字不應該重複之前d 4套5結束... –

+1

@Sharanya你有沒有洗牌數組之間?如果你想要四組非重複的數字,只需要洗一次數組,然後索引0 - 4,4 - 9,9 - 14和14 - 19 – wutz

+0

幫助..謝謝:) :) –