generátor
public static void RandomFillMassive
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
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
RandomFillMassive
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
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; ;