Conectar-se
Quem está conectado
27 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 27 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte

tem como escolher um numero aleatório e nao repetir o numero escolhido?

3 - 75%
1 - 25%
0 - 0%
 
Total dos votos: 4
avatar
Data de inscrição : 14/09/2013
Número de Mensagens : 48
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

aleatório, mas não repetitivo

em Sab 05 Out 2013, 21:24
ola pessoa. a minha duvida consiste no seguinte: tem como escolher um valor aleatório e depos nao repetir o valor já escolhido, ate não tiver mas nenhum valor para ele escolher, então repete. si tiver, isso tornaria o meu jogo e a engine que vou postar no topico: "show message- meu problema tem solução?" (no momento a net usada nao da pra por link) depois dou um edit.
exemplo: no evento colisão do play com o obj_x
(codigo que escolhe aleatóriamente um valor, tipo "random(6)")
case 0= pergunta1
case 1= pergunta2
case 2= pergunta3
case 3= pergunta4
case 4= pergunta5
case 5= pergunta6
suponhamos que ele escolhe o case 3, tem como fazer que na proxima vez que o play colidir com o obj_x, o case 3 não seja mas mas escolhido, a menos que todos os case já foram usado?
obs: isso foi so um exemplo do que eu quero, nada de fazer um edit ou citação dos codigos escrito o exemplo e dizer: está errado!!!
obs1: pode nao ser usado o random e case. qualquer coisa que se encaixa no que eu quero, tipo: variavel pergunta=100 variavel pergunta=random(100)... escolhe um numero que nao sera repetido. 95% de mim diz que não. por ser "random" nao temos control sobre ele. os 5% pode ser o vencedor.
obs2:ajudam pessoal.
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: aleatório, mas não repetitivo

em Sab 05 Out 2013, 22:06
Reputação da mensagem: 100% (1 votos)
Olá, existem muitas algumas maneiras de fazer isso, acredito que a mais confiável é usar ds_list. Vou postar um exemplo para que você possa entender melhor.

Código:
list = ds_list_create(); //Criar a lista
ds_list_add(list, "Pergunta 0"); //Adicionar a pergunta 1 na lista
ds_list_add(list, "Pergunta 1");
ds_list_add(list, "Pergunta 2");
ds_list_add(list, "Pergunta 3");
ds_list_add(list, "Pergunta 4");

ds_list_shuffle(list); //Embaralha os valores na lista de forma que eles acabam em uma ordem aleatória.

repeat (5) {
show_message(ds_list_find_value(list, 0)); //Mostra a primeira pergunta, depois delas serem embaralhadas.
ds_list_delete(list, 0); //Apaga essa pergunta para que ela não apareça novamente.
}

//A ideia é sempre usar o "ds_list_find_value" na posição 0 (primeira pergunta), e apagar ela, fazendo isso repetidamente até perminar as perguntas.
avatar
Data de inscrição : 14/09/2013
Número de Mensagens : 48
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: aleatório, mas não repetitivo

em Dom 06 Out 2013, 07:43
tem!!! 95% de mim estava errado!!! vou entender bem isso de "ds_list". si da para usar ele no envento draw. já comecei a ler na documentação do gm. visto que existem muitas maneiras de fazer, alguem pode sugerir outras? obrigado klior!!!!!!! outra coisa: show_message pode ser trocado com outra coisa? tipo um objecto?
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum