hlmod.hu
https://hlmod.hu/

Sorsolás kizárása (random)
https://hlmod.hu/viewtopic.php?f=9&t=9590
Oldal: 1 / 1

Szerző:  expert [2013.07.18. 20:42 ]
Hozzászólás témája:  Sorsolás kizárása (random)

Sziasztok, valaki megtudná nekem mondani hogy tudom random számbol kizárni az előző sorsolt számot ?
Én már probálkoztam vele de sehogy se akar összejönni. szóval itt az sma- is lássátok miről is lenne szó.
ez most 2 számmal van csak csinálva teszt miatt de majd többel akarom.
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. new volt = 0
  3.  
  4. public sorsol()
  5. {
  6. switch(random_num(1,2))
  7. {
  8. case 1:
  9. {
  10. if(!volt == 1)
  11. {
  12. {
  13. server_cmd("asd")
  14. volt = 1
  15. }
  16. }
  17. else
  18. {
  19. sorsol()
  20. }
  21. }
  22.  
  23. case 2:
  24. {
  25. if(!volt == 2)
  26. {
  27. volt = 2
  28. {
  29. server_cmd("asd2")
  30. }
  31. }
  32. else
  33. {
  34. sorsol()
  35. }
  36. }
  37. }
  38. }
  39.  
  40.  

Szerző:  Silent [2013.07.19. 06:14 ]
Hozzászólás témája:  Re: Sorsolás kizárása (random)

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #define MAXIMUM 10
  3. new randomszamok[MAXIMUM];
  4. new utolsoszam;
  5.  
  6. feltolt()
  7. {
  8. for(new i=0; i<MAXIMUM; i++)
  9. randomszamok[i] = random_num(1,99);
  10. }
  11.  
  12. public sorsol()
  13. {
  14. new randomszam = random_num(0, MAXIMUM);
  15. if(utolsoszam != randomszamok[randomszam];
  16. {
  17. utolsoszam = randomszamok[randomszam];
  18. return utolsoszam;
  19. }
  20. else sorsol();
  21. }
  22.  


Amit a fenti kód csinál:

Létrehoz 10 véletlenszerű számot a randomszamok tömbbe, itt még nincs kizárva az ismétlődés.
Pl:
{ 1, 4, 71, 4, 27, 35, 98, 4, 6, 55)
Ezek közül kiválaszt egyet véletlenszerűen egyet, majd ellenőrzi, hogy az értéke ugyanaz volt-e mint az előzőnek. Ha igen, újraválaszt, ha nem, visszatér az értékével.

Figyelem!
Ha elsőnek kiválasztja a randomszamok[2] -t, ugye a 4-et, majd utána a randomszamok[8] -t nem fogja elfogadni, mert az ugyanaz.

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/