[ajuda] Random !
#1

Boa noite amigos !

Estive a criar um sistema de lotaria para o meu server, o problema й que quando sai o bilhete no jogo os numeros podem sair repetido, e eu queria mudar isso!

pawn Код:
MakeNumber()
{
    Number[0] = random(49);
    Number[1] = random(49);
    Number[2] = random(49);
    Number[3] = random(49);
    Number[4] = random(49);
    Number[5] = random(10);
    Number[6] = random(10);
}
Eu queria por exemplo se no Number[0] saisse o numero 15 (por exemplo)
nos outros numeros saisse um numero diferente do Number[0]!

tinha de ser qualquer coisa como:
number[0] = random(49);
number[1] = random(49) exeto o number[0]


Serб possivel isto?
Reply
#2

Tente trocar os (49) por algum outro numero e um (10) por outro nъmero! , que pelo oque eu sei os numeros sorteados ae so vгo ser o 49 e o 10
Reply
#3

pawn Код:
MakeNumber()
{
    Number[0] = random(49);
    Number[1] = random(49);
    Number[2] = random(49);
    Number[3] = random(49);
    Number[4] = random(49);
    Number[5] = random(10);
    Number[6] = random(10);
    for(new i = 0; i <= 4; ++i ) {
        if(Number[i] == Number[i])  {
            Number[i] = Random(49);
        }
    }      
   if(Number[5] == Number[6])
      Number[5] = random(10);  
}
Reply
#4

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
pawn Код:
MakeNumber()
{
    Number[0] = random(49);
    Number[1] = random(49);
    Number[2] = random(49);
    Number[3] = random(49);
    Number[4] = random(49);
    Number[5] = random(10);
    Number[6] = random(10);
    for(new i = 0; i <= 4; ++i ) {
        if(Number[i] == Number[i])  {
            Number[i] = Random(49);
        }
    }      
   if(Number[5] == Number[6])
      Number[5] = random(10);  
}
assim й melhor
pawn Код:
stock MakeNumber()
{
    static MyNun[500], nTemp;
    procura:
    nTemp = random(50);
    {
        for(new i; i != 500; ++i)
        {
            if(MyNun[i] == nTemp) goto procura;
            if(MyNun[i] != nTemp) break;
        }
    }
    return nTemp;
}
Reply
#5

Quote:
Originally Posted by DarkScripter
Посмотреть сообщение
assim й melhor
pawn Код:
stock MakeNumber()
{
    static MyNun[500], nTemp;
    procura:
    nTemp = random(50);
    {
        for(new i; i != 500; ++i)
        {
            if(MyNun[i] == nTemp) goto procura;
            if(MyNun[i] != nTemp) break;
        }
    }
    return nTemp;
}
MELHOR?
Desde quando criar um loop de 500 e uma array de 500 й melhor? llol?
Isso daн pode se tornar um LOOP infinito cara, e se nгo der 3 vezes?
O loop vai ser chamado 1500 vezes.
Nuss, meudeus..
Isso pode atй travar o server.. pqp..
Reply
#6

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
MELHOR?
Desde quando criar um loop de 500 e uma array de 500 й melhor? llol?
Isso daн pode se tornar um LOOP infinito cara, e se nгo der 3 vezes?
O loop vai ser chamado 1500 vezes.
Nuss, meudeus..
Isso pode atй travar o server.. pqp..
nгo pira, o cуdigo estб perfeito, ele funciona perfeitamente,
ao contrбrio do seu que ao armazenar mais 4 nъmeros, ele comeзa a repetir.
Reply
#7

Obrigado aos dois pela ajuda !

Ricop522
Ainda esta a repetir os numeros!

DarkScripter
Nao consegui adaptar o seu codigo no meu FS

Ainda agora fui testar e com o metodo do Ricop522 e saiu 2 vezes o numero 1 !
Reply
#8

Quote:
Originally Posted by DarkScripter
Посмотреть сообщение
nгo pira, o cуdigo estб perfeito, ele funciona perfeitamente,
ao contrбrio do seu que ao armazenar mais 4 nъmeros, ele comeзa a repetir.
Repitir? vocк entende de Loops? sugiro vocк estudar mais Pawn porque o seu cуdigo tб um lixo.
Reply
#9

Usando IRL(https://sampforum.blast.hk/showthread.php?tid=269457):
pawn Код:
//Criando nъmeros a ser sorteados:
new RandomList:Loteria;
Loteria = CreateRandomList();
for(new i = 1; i < 51; i++) AddItemsToRandomList(Loteria, i);
//Obter nъmeros random
new Numbers[6];
Numbers[0] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[0]);
Numbers[1] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[1]);
Numbers[2] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[2]);
Numbers[3] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[3]);
Numbers[4] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[4]);
Numbers[5] = RandomNumberFromList(Loteria);
RemoveItemsFromRandomList(Loteria, Numbers[5]);
//Destruindo lista
DestroyRandomList(Loteria);
Usando foreach: (https://sampforum.blast.hk/showthread.php?tid=92679)
pawn Код:
//Criando nъmeros a ser sorteados:
new Iterator:Numeros<50>;
for(new i = 1; i < 51; i++) Itter_Add(Numeros, i);
//Obter nъmeros random
new Numbers[6];
Numbers[0] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[0]);
Numbers[1] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[1]);
Numbers[2] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[2]);
Numbers[3] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[3]);
Numbers[4] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[4]);
Numbers[5] = Itter_Random(Numeros);
Itter_Remove(Numeros, Numbers[5]);
Reply
#10

iih vai rolar peia '--'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)