请告诉我如何在javascript中为unity3d生成5个不同的不可重复的随机数1,20
这是我写的代码..这个工作第3次,但最后一次崩溃。请告诉我如何即兴表达我已经在数组中取数字在屏幕上打印它们检查它们的可重复性。这个工作是3次..第四次团结崩溃。我知道dunno如何解决它的原因..我认为这是因为它无法检测到阵列的剩余数量。请告诉我哪里出错了......我是团结的新手。
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();
}
}
}
答案 0 :(得分:2)
解决这个问题的一种方法是创建可能值的数组,将其洗牌,然后查看前五个元素: