generátor

public static void RandomFillMassive # 40; T # 91; # 93; argArray # 41; # 123;
var lenghtIndex = # 40; argArray mint System. sor # 41;. hossz;
var countSwap = Random. tartomány # 40; 50, 100 * lenghtIndex # 41; ;

mert # 40; int i = 0; én var index0 = Random. tartomány # 40; 0, lenghtIndex # 41; ;
hurok.
var index1 = Random. tartomány # 40; 0, lenghtIndex # 41; ;
ha # 40; index1 == index0 # 41;
goto hurok;
var temp = argArray # 91; index0 # 93; ;
argArray # 91; index0 # 93; = argArray # 91; index1 # 93; ;
argArray # 91; index1 # 93; = Temp;
# 125;
# 125;


Használja a következő

1) Tegyük fel, van 2 tömb
var someElements = új int [5];
var someGOs = új GameObject [5];

2) véletlenszerűen permutálja elemeket a megfelelő pillanatban a játék logikája
RandomFillMassive(SomeElements);
RandomFillMassive(SomeGOs);

3) olvasása révén tömb mindegyik eleme someElements ciklusban [index]. vagy someGOs [index].

Kayler írta (a): Én ciklus első példát az egy tömbben 10 érték véletlenszerűen, majd cserélje ki a ciklus addig ismétlődik, amíg nem ismétlődik

Ez elméletileg lefagy) És ez egy hosszú idő.
Egyszerűen töltse ki a számokat valóban emelkedő, majd keverjük össze.

Fejlesztő Atom Horgászás - Fishing on az úszó, donk, legyező horgászat, pergetett a poszt-nukleáris időszakban.
Fejlesztő Atom Fishing II - Az első 3D-s MMO a halászat

Semmi keverés nem szükséges.

1. Készítsen egy tömb az N elemek kitöltésére számozása 0 N-1
2. generálása valós szám 0-tól 1 megszorozzuk N-1, lekerekítjük a legközelebbi egész
3. Swap a tömb eleme az utóbbi.
4. Az utolsó elem a tömbben ahelyett, hogy egy véletlen számot.

Segítségre van szüksége? Magad, magad, magad, magad, magad. Azt csináld magad

Őszintén nem vette észre lefagy, minden úgy történt, azonnal)


Mondom elméletileg, de nem az, amit valójában lefagy. Nos, itt például, hogy töltse tömb 10 elemet foglal 8 ismétlődő számjegy)) Minden van holtpont.

Fejlesztő Atom Horgászás - Fishing on az úszó, donk, legyező horgászat, pergetett a poszt-nukleáris időszakban.
Fejlesztő Atom Fishing II - Az első 3D-s MMO a halászat

Azt javaslom, hogy létrehoz egy sor egyedi értéket, majd csak dobja őket egyenként:

var arrSize. int = 10;
privát var randomValue. int # 91; # 93; ; // tömb egyedi értékek
privát var nAddedValues. int = 0; // hány egyedi értékek kerültek a tömb

funkció indítása # 40; # 41;
# 123;
randomValue = new int # 91; arrSize # 93; ;
fillArrayRandomValues # 40; randomValue. 0. 100 # 41; ;
/ * A (érték randomValue)
Debug.log ( "Érték:" + getRandomValue ());
> * /
# 125; ;

funkció fillArrayRandomValues # 40; tömb. int # 91; # 93;. min. int. max. int # 41;. űr
# 123;
nAddedValues ​​= 0;
mert # 40; érték randomValue # 41;
# 123;
csinál
# 123;
value = Random. tartomány # 40; min. max # 41; ;
# 125; míg # 40;. isUnique # 40; érték # 41; # 41; ;
//Debug.Log("Unique érték: "+ érték +" egészül „) ;.
nAddedValues ​​++;
# 125; ;
# 125; ;

funkció isUnique # 40; értéket. int # 41;. logikai
# 123;
mert # 40; var i. int = 0; én # 123;
ha # 40; érték == randomValue # 91; én # 93; # 41; return false; // ez az érték már létezik a tömbben
# 125; ;
return true;
# 125; ;

funkció getRandomValue # 40; # 41;. int
# 123;
visszaút randomValue # 91; - nAddedValues # 93; ;
# 125; ;

Kapcsolódó cikkek