GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Robi222 - 2014. szeptember 23. - 21:00:21

Cím: Random szám generátor,ugyanaz a szám
Írta: Robi222 - 2014. szeptember 23. - 21:00:21
Hali!
Van egy random szám generátorom ami 6 számjegyet generál véletlenül,és olyat akarnák bele csinálni,hogy véletlenül ne hogy kétszer generálja le ugyanazt a számot,mert nem akarom hogy össze buggoljon. Azt hallottam hogy while ciklussal kéne megoldani valahogy,vagy hogy ? Aki segít annak elõre is köszi.
Ez generálja a számot:
 

stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand = random(max-min)+min;   
    return rand;
}
Cím: Random szám generátor,ugyanaz a szám
Írta: rayle - 2014. szeptember 23. - 21:03:46
Tehát olyat szeretnél hogy egymás után ne lehessen kétszer ugyanaz a szám?
 
new elozoszam;
stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand;
    do
    {
        rand = random(max-min)+min;   
    }
    while(rand == elozoszam);
    elozoszam = rand;
    return rand;
}
Cím: Random szám generátor,ugyanaz a szám
Írta: krisk - 2014. szeptember 23. - 21:30:16
Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
Cím: Random szám generátor,ugyanaz a szám
Írta: Robi222 - 2014. szeptember 23. - 22:30:58
Idézetet írta: rayle date=1411499026\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic
Tehát olyat szeretnél hogy egymás után ne lehessen kétszer ugyanaz a szám?
 
new elozoszam;
stock randomEx(min, max)
{   
    //Credits to y_less   
    new rand;
    do
    {
        rand = random(max-min)+min;   
    }
    while(rand == elozoszam);
    elozoszam = rand;
    return rand;
}

 

Úgy szeretném,hogy például generál egy számot ami \"123456\",és azt szeretném, hogy ugyanezt a számot ne generálja le,tehát nem úgy szeretném hogy egymás mellet két ugyanolyan karaktert ne generáljon,hanem ezt,hogy teljesen ugyanazt a számot ne generáljon.
Cím: Random szám generátor,ugyanaz a szám
Írta: M1A1 - 2014. szeptember 24. - 17:14:10
Idézetet írta: krisk date=1411500616\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic
Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 
Cím: Random szám generátor,ugyanaz a szám
Írta: BackUP - 2014. szeptember 24. - 18:25:13
new elozoszam; // mód teteje
stock randomEx(min, max)
{   
    //Credits to y_less   
    new msz, rand;
    do
    {
        rand = random(max-min)+min;   
        msz= rand;
    } while(msz == elozoszam);
    elozoszam = msz;
    return rand;
}

 
Szerintem mûködni fog, egymás után nem generálja ugyanazt a számot. Kicsit bonyolultabb, ha azt szeretnéd, hogy többet soha ne legyen ugyanaz a szám.
Edit: Javítottam.



Idézetet írta: M1A1 date=1411571650\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic


Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 

[/quote]
Ennek nem volt sok értelme, csak HSZ hunterkedés. Egyszer valaki leírta, szerintem elég érthetõen.
Cím: Random szám generátor,ugyanaz a szám
Írta: Robi222 - 2014. szeptember 24. - 19:07:40
Idézetet írta: BackUP date=1411575913\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50719\" data-ipsquote-contentclass=\"forums_Topic

new elozoszam; // mód teteje
stock randomEx(min, max)
{   
    //Credits to y_less   
    new msz, rand;
    do
    {
        rand = random(max-min)+min;   
        msz= rand;
    } while(msz == elozoszam);
    elozoszam = msz;
    return rand;
}

 
Szerintem mûködni fog, egymás után nem generálja ugyanazt a számot. Kicsit bonyolultabb, ha azt szeretnéd, hogy többet soha ne legyen ugyanaz a szám.
Edit: Javítottam.




 

Ha meg egy listából szeretnéd, akkor nem nagyon lehet mást csinálni, mint végignézni a lista összes elemét, hogy egyezik-e a generált értékkel.
 

[/quote]
Ennek nem volt sok értelme, csak HSZ hunterkedés. Egyszer valaki leírta, szerintem elég érthetõen.
 

[/quote]
Köszi,akkor jól tudtam hogy \'while\' -al kell megoldani. :D Egyenlõre átrakom \'megoldva\' csak mert ezt úgy tudom rendesen letesztelni,ha véletlen tényleg le generál egy olyan számot ami már létezik,szóval egyenlõre köszi. :) BackUP ha tudok akkor adok + t.