SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 28/06/2018, 03:08 AM   #1
GasparzinhoXD
Big Clucker
 
Join Date: Oct 2017
Posts: 166
Reputation: 2
Default Gerar números 2 aleatórios sem repetir

Olá, como eu faço para gerar 2 números aleatórios de 0 a 5 e fazer eles não repetir?
Eu tentei fazer aqui, mas não to conseguindo.
GasparzinhoXD is offline   Reply With Quote
Old 28/06/2018, 03:23 AM   #2
Ermanhaut
Gangsta
 
Ermanhaut's Avatar
 
Join Date: Apr 2016
Location: 2369.5547, -1681.9297, 15.0078
Posts: 635
Reputation: 47
Default Re: Gerar números 2 aleatórios sem repetir

Code:
stock randomValue(max, non_r_value = -1) { // randomValue(valor máximo, valor que não pode repetir);

  new rand = random(max);
  while(non_r_value == rand) {
    rand = random(max);
  }

  return rand;
}

// Exemplo de uso
new cor1 = random(5), cor2 = randomValue(5, cor1);

CreateVehicle(402, /*Nas coordenadas foda-se*/, cor1, cor2, 0);
OBS: Não compilei, mas parece estar correto.

@EDIT

Toma cuidado para não colocar -1 no valor a não repetir se não vai gerar um loop infinito.
__________________
try, try and try again
Ermanhaut is offline   Reply With Quote
Old 28/06/2018, 03:46 AM   #3
GasparzinhoXD
Big Clucker
 
Join Date: Oct 2017
Posts: 166
Reputation: 2
Default Re: Gerar números 2 aleatórios sem repetir

Eu fiz assim:

PHP Code:

CMD
:numero(playerid)
{
    new 
number1number2string[255];
    
number1 randomValue(9number1);
    
number2 randomValue(9number2);
    
    
format(stringsizeof(string), "%d %d"number1number2);
    
SendClientMessage(playerid, -1string);
    return 
1;

Vê se ta certo, por que saiu número repetido 55
GasparzinhoXD is offline   Reply With Quote
Old 28/06/2018, 03:47 AM   #4
Ermanhaut
Gangsta
 
Ermanhaut's Avatar
 
Join Date: Apr 2016
Location: 2369.5547, -1681.9297, 15.0078
Posts: 635
Reputation: 47
Default Re: Gerar números 2 aleatórios sem repetir

Você usou errado a função:

Quote:
Originally Posted by GasparzinhoXD View Post
Eu fiz assim:

PHP Code:

CMD
:numero(playerid)
{
    new 
number1number2string[255];
    
number1 random(9);
    
number2 randomValue(9number1);
    
    
format(stringsizeof(string), "%d %d"number1number2);
    
SendClientMessage(playerid, -1string);
    return 
1;

Vê se ta certo, por que saiu número repetido 55
Ela deve ser usada assim:

Code:
randomValue(max, non_r_value = -1)
// max: O valor máximo que a função pode retornar.
// non_r_value = -1: O valor que não deve ser repetido.

new valor1, valor2;
valor1 = random(100); // Vai retornar um valor entre 0 e 100.
valor2 = random(100, valor1); // Vai retornar um valor entre 0 e 100 diferente do valor da variável valor1.
__________________
try, try and try again
Ermanhaut is offline   Reply With Quote
Old 28/06/2018, 03:50 AM   #5
GasparzinhoXD
Big Clucker
 
Join Date: Oct 2017
Posts: 166
Reputation: 2
Default Re: Gerar números 2 aleatórios sem repetir

Mas não era pra gerar números de 0 á 9 sem repetir? ;-;
GasparzinhoXD is offline   Reply With Quote
Old 28/06/2018, 03:54 AM   #6
Ermanhaut
Gangsta
 
Ermanhaut's Avatar
 
Join Date: Apr 2016
Location: 2369.5547, -1681.9297, 15.0078
Posts: 635
Reputation: 47
Default Re: Gerar números 2 aleatórios sem repetir

Quote:
Originally Posted by GasparzinhoXD View Post
Mas não era pra gerar números de 0 á 9 sem repetir? ;-;
Troque seu comando por este:
Code:
CMD:numero(playerid) 
{ 
    new number1, number2, string[255]; 
    number1 = random(9); 
    number2 = randomValue(9, number1); 
     
    format(string, sizeof(string), "%d %d", number1, number2); 
    SendClientMessage(playerid, -1, string); 
    return 1; 
}
__________________
try, try and try again
Ermanhaut is offline   Reply With Quote
Old 28/06/2018, 04:03 AM   #7
GasparzinhoXD
Big Clucker
 
Join Date: Oct 2017
Posts: 166
Reputation: 2
Default Re: Gerar números 2 aleatórios sem repetir

https://imgur.com/a/gxqobQq Ta repetindo.
GasparzinhoXD is offline   Reply With Quote
Old 28/06/2018, 04:13 AM   #8
Ermanhaut
Gangsta
 
Ermanhaut's Avatar
 
Join Date: Apr 2016
Location: 2369.5547, -1681.9297, 15.0078
Posts: 635
Reputation: 47
Default Re: Gerar números 2 aleatórios sem repetir

Ata, você quer setar numeros e não quer que eles se repitam nunca.
Então eu tenho que mudar a função.
Code:
new val_array[100]; // Se mudar o nome desta array, mude dentro da função também.

public OnGameModeInit() {
  for(new r; r < sizeof val_array; r++) val_array[r] = -1; // Coloque isto no seu GM.
}

stock randomValue(max) { // randomValue(valor máximo);

  new rand = random(max);
  for(new i; i < sizeof val_array; i++) {
  	while(val_array[i] == rand) {
  		rand = random(max);
  	}
  }

  for(new j; j < sizeof val_array; j++) {
    if(val_array[j] == -1)
      val_array[j] = rand;
  }

  return rand;
}
	
new string[255];
format(string, sizeof(string), "%d %d", randomValue(255), randomValue(255));
SendClientMessage(playerid, -1, string);
__________________
try, try and try again
Ermanhaut is offline   Reply With Quote
Old 28/06/2018, 04:32 AM   #9
GasparzinhoXD
Big Clucker
 
Join Date: Oct 2017
Posts: 166
Reputation: 2
Default Re: Gerar números 2 aleatórios sem repetir

Tipo, com essa função ai, eles podem repetir assim né: 55, mas não aparecer em baixo o mesmo exemplo:
55
55

correto?

@edit Por quando coloquei
PHP Code:
    new string[255];
    
format(stringsizeof(string), "%d%d"randomValue(1), randomValue(2));
    
SendClientMessage(playerid, -1string); 
Não apareceu nada?
GasparzinhoXD is offline   Reply With Quote
Old 28/06/2018, 04:38 AM   #10
Ermanhaut
Gangsta
 
Ermanhaut's Avatar
 
Join Date: Apr 2016
Location: 2369.5547, -1681.9297, 15.0078
Posts: 635
Reputation: 47
Default Re: Gerar números 2 aleatórios sem repetir

Quote:
Originally Posted by GasparzinhoXD View Post
Tipo, com essa função ai, eles podem repetir assim né: 55, mas não aparecer em baixo o mesmo exemplo:
55
55

correto?
Correto.

Quote:
@edit Por quando coloquei
PHP Code:
    new string[255];
    
format(stringsizeof(string), "%d%d"randomValue(1), randomValue(2));
    
SendClientMessage(playerid, -1string); 
Não apareceu nada?
Me da um tempo que eu vou debugar essa função.
__________________
try, try and try again
Ermanhaut is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Criar comando de gerar casa HelderPT Português/Portuguese 6 06/06/2018 01:30 AM
[Ajuda] Ajuda em numeros aleatorios para cod SamuelMatheus05 Português/Portuguese 4 20/02/2018 11:57 PM
[Ajuda] gerar servidor automaticamente com php VeNuZ_ Português/Portuguese 5 30/05/2014 02:43 PM
[Tool/Web/Other] pCash - Gerar e Ativar Cash (Pawn/PHP/MySQL) smiir Lançamentos/Releases 32 01/03/2014 12:59 PM


All times are GMT. The time now is 12:44 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.