GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


Random 5 veses sem repetir o mesmo valor

+8
pedrosorio
Volstagg
rodrigo1434
Froidz
vinians
RKNF1995
Gusba
Janx
12 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Random 5 veses sem repetir o mesmo valor

Mensagem por Janx Dom 05 Out 2008, 15:48

è o seguinte:
tenho 5 objetos, dai eu quero que cada um ganhe um numero aleatorio de 0 a 4.
cada numero desses corresponde a um outro valor... para outra coisa
mas como eu fasso para fazer esses randoms sem repetir o valor???
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Gusba Dom 05 Out 2008, 17:31

explique melhor
Gusba
Gusba

Data de inscrição : 03/08/2008
Reputação : 0
Número de Mensagens : 1156
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.ciganospictures.hd1.com.br

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por RKNF1995 Dom 05 Out 2008, 17:38

acho que ele quer que apareça 5 numeros aleatorias mas que nao se repitam
RKNF1995
RKNF1995

Data de inscrição : 19/07/2008
Reputação : 6
Número de Mensagens : 1257
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.rknf1995.blogspot.com

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por vinians Dom 05 Out 2008, 18:14

Coloque no evento CREATE em um objeto de inicializacao:
Código:

randomize();
depois no evento CREATE de cada objeto:
Código:

numero = ceil(random(5));
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2716
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Janx Dom 05 Out 2008, 18:52

noossa explica porfavor?? O_O!"
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Gusba Dom 05 Out 2008, 18:54

q codigo é esse, explica ae!
Gusba
Gusba

Data de inscrição : 03/08/2008
Reputação : 0
Número de Mensagens : 1156
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.ciganospictures.hd1.com.br

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Froidz Dom 05 Out 2008, 19:29

será que criando 5 alarms resolveria o problema?
Soh uma sugestão ^^
Froidz
Froidz

Data de inscrição : 03/08/2008
Reputação : 4
Número de Mensagens : 1053
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Janx Dom 05 Out 2008, 19:37

Claudio Bruno escreveu:será que criando 5 alarms resolveria o problema?
Soh uma sugestão ^^
Nao O.o
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por vinians Dom 05 Out 2008, 19:46

Randomize() - Faz com que ao executar o seu jogo os números aleatórios gerados sejam sempre diferentes. Ele embaralha o gerador de números aleatórios. Assim quando voce usar a função random() ela vai funcionar melhor como se fosse um veradadeiro dado eletrônico. Você precisar executar a função randomize() ao menos uma vez em seus jogos se for utilizar números aleatórios. A função ceil() serve arredondar um número tipo 4.2 para o maior inteiro mais próximo do número. Você pode usar o floor() que faz o arredondamento para baixo. Tipo 4.2 vira 4. Usando o ceil() 4.2 vira 5. Então random(5) de 0 a 4.999 por isso uso o ceil(). Flw
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2716
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por rodrigo1434 Dom 05 Out 2008, 20:13

var=floor(random(4))
tenta esse

ou cria um objeto que ira criar esse objetos

var a;
a=0
repeat(5){
bola=instance_create(random(room_width),random(room_height),obj_bola)
with(bola) valordabola=a
a+=1}


Última edição por rodrigo1434 em Dom 05 Out 2008, 20:21, editado 1 vez(es)
rodrigo1434
rodrigo1434

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 25/04/2008
Reputação : 5
Número de Mensagens : 324
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://brasilgame.forumbrasil.net

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Janx Dom 05 Out 2008, 20:16

rodrigo1434 escreveu:var=floor(random(4))
tenta esse

isso pode dar o mesmo numero mais de uma vez.

Vunians:
Cara, mas dai se um valor é 'escolhido', esse valor nao vai ser mais escolhido dinovo ateh eu recomeçar o jogo?? digamos... que caiu 8
dai nunca mais pode cair 8 ateh eu fexa o jogo e abrir dinovo??
Janx
Janx

Data de inscrição : 24/05/2008
Reputação : 14
Número de Mensagens : 2417
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por rodrigo1434 Dom 05 Out 2008, 20:24

atualizei o post veja dinovo
rodrigo1434
rodrigo1434

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 25/04/2008
Reputação : 5
Número de Mensagens : 324
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://brasilgame.forumbrasil.net

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por vinians Seg 06 Out 2008, 03:06

Na verdade o randomize() faz com que a aleatorização seja mais real. Se vc quizer garantir que nao dê igual armazene os numeros em um vetor.
No evento CREATE de um objeto coloque este código e execute pra vc como funciona:
Código:

r[1] = 0; r[2] = 0; r[3] = 0; r[4] = 0; r[5] = 0;
randomize(); //prepara gerador aleatorio
ss = " ";
while (ss <> "AAAAA")
{
  c  = 0;
  ss = "*****";
  repeat (5)
  {
      c += 1;
      r[c] = ceil(random(5));  //gera numero aleatório no vetor r
      //coloca uma letra 'A' pra marcar a posição
      s1 = string_copy(ss, 1,  r[c] - 1);
      s2 = string_copy(ss, r[c] + 1, string_length(ss) - r[c]);
      ss = s1 + 'A' + s2;
  }
}
c = 1; repeat(5) {r[c] = r[c] - 1; c += 1;}; //valores de 0 a 4 em r
//Depois que vc testar pode remover daqui pra baixo (é so pra mostrar como ficou)
c = 1; str = "-";
repeat(5) {str = str + string(r[c]) + "-"; c += 1; }
show_message('Numeros Gerados: ' + str);
Este é um código de exemplo que gera 5 numeros aleatórios diferentes entre si. Os numeros estão armazenados no vetor r[], dai agora é só vc pegar o valor r[1], r[2] etc e colocar numa variável nos seus 5 objetos. flw
*obs: código testado na versão 7 do GM[u]
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2716
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Volstagg Seg 06 Out 2008, 10:55

Que "codigozão" heim! Shocked
Volstagg
Volstagg

Data de inscrição : 16/05/2008
Reputação : 0
Número de Mensagens : 353
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Gusba Seg 06 Out 2008, 13:13

muito bem pensado esse seu codigo vinians
Gusba
Gusba

Data de inscrição : 03/08/2008
Reputação : 0
Número de Mensagens : 1156
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.ciganospictures.hd1.com.br

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por pedrosorio Seg 06 Out 2008, 18:13

Demasiado complicado esse código, e não faz sentido usar strings.

Código:

r[4]=0;
randomize();
for(a=0;a<=4;a+=1) {
  n=floor(random(200))+1;
  nn=0;
  while(n>0) {
    while(r[nn]!=0)
      nn=(nn+1) mod 5;
    n-=1;
  }
  r[nn]=a+1;
}
pedrosorio
pedrosorio

Data de inscrição : 15/06/2008
Reputação : 0
Número de Mensagens : 50
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por vinians Seg 06 Out 2008, 19:41

pedrosorio escreveu:Demasiado complicado esse código, e não faz sentido usar strings.

Código:

r[4]=0;
randomize();
for(a=0;a<=4;a+=1) {
  n=floor(random(200))+1;
  nn=0;
  while(n>0) {
    while(r[nn]!=0)
      nn=(nn+1) mod 5;
    n-=1;
  }
  r[nn]=a+1;
}
Sério? bem eu testei o seu código e ele não esta funcionando sempre retorna a mesma sequencia 1-2-3-4-5...
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2716
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por pedrosorio Ter 07 Out 2008, 03:49

LOL

É o que dá escrever código às tantas da noite sem testar, evidentemente faltava uma linha fundamental:

Código:

r[4]=0;
randomize();
for(a=0;a<=4;a+=1) {
  n=floor(random(200))+1;
  nn=0;
  while(n>0) {
    nn=(nn+1) mod 5;
    while(r[nn]!=0)
      nn=(nn+1) mod 5;
    n-=1;
  }
  r[nn]=a+1;
}
pedrosorio
pedrosorio

Data de inscrição : 15/06/2008
Reputação : 0
Número de Mensagens : 50
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por dani Ter 07 Out 2008, 08:23

pedrosorio escreveu:LOL

É o que dá escrever código às tantas da noite sem testar, evidentemente faltava uma linha fundamental:

Código:

r[4]=0;
randomize();
for(a=0;a<=4;a+=1) {
  n=floor(random(200))+1;
  nn=0;
  while(n>0) {
    nn=(nn+1) mod 5;
    while(r[nn]!=0)
      nn=(nn+1) mod 5;
    n-=1;
  }
  r[nn]=a+1;
}

acho que não vai retornar o mesmo valor de antes.... pq tipo, o vetor r[4] vai adicionar sempre a sequência de 1 - 2 - 3 - 4 como mostra essa linha r[nn]=a+1; a meu ver tudo que está dentro do laço for será despresado.

@topic
não sei se o código do vinians explica isso, como não entendi vou perguntar... como que funciona exatamente esse randomize()? pois 1.2 é diferente de 1.3, mas como querem um inteiro vai ficar 1.. então se repetirá.
dani
dani

Data de inscrição : 03/10/2008
Reputação : 0
Número de Mensagens : 30
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por pedrosorio Ter 07 Out 2008, 16:08

Portanto, dani, você acredita sinceramente que um código que usa strings para gerar números aleatórios é um código conciso e correcto. Mas não se dá sequer ao trabalho de analisar um algoritmo simples para gerar números aleatórios não repetidos?

A meu ver, a linha r[nn]=a+1 vai colocar na posição nn do array r, o valor a+1, (1,2,3,4,5). Evidentemente a aleatoriedade se encontra no 'nn', isto é, na posição do array onde é colocado o número.

O algoritmo limita-se a gerar um número aleatório 'n' e a percorrer o array em busca de posições que ainda não têm valores atribuídos. Cada vez que encontra uma dessas, diminui o 'n' até chegar a 0. Quando aqui chega atribui à posição actual 'nn' o valor designado. Temos assim uma posição perfeitamente aleatória. Já tinha aliás mostrado este algoritmo noutro tópico da gmbr.

Embora o ciclo não tenha que ser percorrido muitas vezes, a verdade é que não vale a pena estar a diminuir n até chegar a 0. Um pouco de aritmética modular simples resultaria no seguinte código equivalente:

Código:

r[4]=0;
randomize();
for(a=0;a<=4;a+=1) {
  n=floor(random(200))+1;
  n=n mod (5-a);
  if(n==0)
    n=5-a;
  nn=0;
  while(n>0) {
    nn=(nn+1) mod 5;
    while(r[nn]!=0)
      nn=(nn+1) mod 5;
    n-=1;
  }
  r[nn]=a+1;
}

Pode parecer que me limitei a adicionar código "desnecessário" mas se quisermos gerar uma lista de números aleatórios muito grande, este código executará bem mais rápido que a minha versão anterior.
pedrosorio
pedrosorio

Data de inscrição : 15/06/2008
Reputação : 0
Número de Mensagens : 50
Prêmios : Random 5 veses sem repetir o mesmo valor Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://pedrosorio.nfshost.com

Ir para o topo Ir para baixo

Random 5 veses sem repetir o mesmo valor Empty Re: Random 5 veses sem repetir o mesmo valor

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos