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

Nenhum

Ver toda a lista


Compartilhe
Ir em baixo
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Random usar "exceto"

em Qui 13 Fev 2014, 21:17
Bom como diz no tópico eu olhei muito sobre random no fórum, mas nada sobre o que quero

vamos supor estou usando:

CREATE:
Código:
X = 288

STEP:
Código:

irandom(X)//sorteia de 0 a 288 pois X é 288

quero que em certo momento eu possa impedir que esse sorteio escolha um numero por exemplo o 32 como eu faço isso?

avatar
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6042
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 289

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

Re: Random usar "exceto"

em Qui 13 Fev 2014, 21:22
Código:
X = 10;
a = irandom(X)
while(a==1 or a==2 or a==3)
{
a = irandom(X);
}
show_message(a);

Você pode usar um loop que não para até achar um número válido, no caso o while.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Qui 13 Fev 2014, 21:37
nesse caso ai ele ta definindo os números que podem aparecer pelo que entendi, mas eu quero que mostrar pra ele os que não podem ser escolhidos pois os que podem ser escolhidos podem ser infinitos xD
avatar
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6042
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 289

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

Re: Random usar "exceto"

em Qui 13 Fev 2014, 21:40
É o contrário.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Qui 13 Fev 2014, 21:50
bom, eu testei aqui e ele fez o sorteio somente selecionar um numero, e depois só ele, não variava mais!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

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

Re: Random usar "exceto"

em Sab 15 Fev 2014, 20:36
@AlexBosquin escreveu:bom, eu testei aqui e ele fez o sorteio somente selecionar um numero, e depois só ele, não variava mais!
Foi o que você pediu. Se quer que fique variando, coloque o código no step ou num alarm.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Dom 16 Fev 2014, 07:21
que estranho eu pedi ajuda pro alex ele me passou um código bem semelhante acontece que:

quero criar um gerador de blocos em posições aleatórias, só que quando eu negar uma posição por exemplo: x ser 32 então o random não pode ser 32 mas esses dois códigos que usei não funfam, ou se você souber um sistema que cheque isto!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

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

Re: Random usar "exceto"

em Dom 16 Fev 2014, 20:11
...
cara, é o while!
Gere um número aleatório. Repita até ele não ser nenhum dos números proibidos.
Pra testar, faça alguns testes. Bom, isso soou bem mais idiota escrito do que estava na minha cabeça... Mas não tem outro jeito de falar, tem?
Faz assim, pegue um universo pequeno, tipo, de 0 a 10. Pegue um número pra ser proibido. Não, pegue uns três. 5, 8 e 9.
No step (de um objeto novo de um jogo novo, não polua seu projeto com isso!) coloque:
Código:
var teste; teste := irandom(10); // dá um valor qualquer
while (teste == 5 or teste == 8 or teste == 9){ // enquanto for qualquer valor proibido
teste := irandom(10); // repete a mistura
}

// verificação
if (teste == 5 or teste == 8 or teste == 9){ // se passou
show_message("falhou. teste deu igual a " + string(teste)); // mostra o erro
}
Note que não coloquei "show_debug_message". Porque estou confiante assim que não vai dar nenhum valor proibido.

Pode colocar o room_speed pra 60. Se em alguns segundos a mensagem NÃO aparecer, o código deu certo.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Dom 16 Fev 2014, 20:17
justamente saim, o codigo não vai funcionar pra mim, mesmo ele estando certo, isso porque ele vai passar pelo numero proibido entende, ou seja ele não pode passar por esse número, isso porque ele cria o bloco quando o passa pelo numero!
avatar
Ranking : Nota B
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Número de Mensagens : 635
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 22

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

Re: Random usar "exceto"

em Dom 16 Fev 2014, 22:41
Então crie um script:

Código:
//script(x,numero_de_exceções,exceção_1,exceção_2,...)
var rd_list,rd_v;
rd_list=ds_list_create();
for(i=1;i<=argument1;i+=1) {
    ds_list_add(rd_list,argument[i+1]);
}
do
{
    rd_v = irandom(argument0);;
}
until (ds_list_find_index(rd_list,rd_v)<0);
ds_list_destroy(rd_list);
return rd_v;

Use-o no lugar de irandom.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

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

Re: Random usar "exceto"

em Dom 23 Fev 2014, 12:57
@AlexBosquin escreveu:justamente saim, o codigo não vai funcionar pra mim, mesmo ele estando certo, isso porque ele vai passar pelo numero proibido entende, ou seja ele não pode passar por esse número, isso porque ele cria o bloco quando o passa pelo numero!
Não entendi. O código não vai nunca te retornar o valor proibido, seja ele qual for, mesmo que ele varie.
Se você quer que nunca retorne 32, não vai retornar 32. Se não quer que te retorne o valor atual de "x", não vai retornar o valor atual de "x".
Como assim, "passar pelo numero proibido"?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Dom 23 Fev 2014, 13:24
é como se fosse pra não poder nunca passar pelo 32, entende!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

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

Re: Random usar "exceto"

em Dom 23 Fev 2014, 23:37
Ainda não... Porque não pode passar pelo 32 se o resultado nunca vai ser (no caso) 32?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Seg 24 Fev 2014, 12:57
mano deixa eu te explicar let's exclarecer a bagaça HHEHEHEHEHEH

so quero um sistema que randomize a posição de blocos gerados aleatoriamente entre 32x e 288x
só pq por exemplo eu não quero que ele possa sair na posição 64x então o codigo não pode ter 64x incluido no random, entendeu?
avatar
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6042
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 289

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

Re: Random usar "exceto"

em Seg 24 Fev 2014, 16:53
Alex, você deveria ter tentado adaptar o código passado.

Bom, pra gerar um bloco, você usa qual evento? Create?

Se for o Create / Room Start / Game Start ou qualquer outro evento que aconteça uma única vez, você faz assim:

Código:
lista = ds_list_create();
posicao = irandom(10);

repeat(numero_blocos)
{
while(ds_list_find_index(lista, posicao)!=-1)
posicao = irandom(10);

ds_list_add(lista, posicao);
instance_create(posicao*32, posicao_y, Bloco);
}


_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Seg 24 Fev 2014, 17:33
eu não sei usar ds lists, e eu uso o envento step pois o numero de blocos a ser gerado são infinitos pois o game é endless run(nunca acaba!)
avatar
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6042
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 289

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

Re: Random usar "exceto"

em Seg 24 Fev 2014, 17:37
Então você precisa aprender a usar ds_lists. E o código serve no Step, desde que seja adaptado. Fale se precisar de ajuda com lists.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Seg 24 Fev 2014, 17:42
o tutorial de ds_list que tem aqui no fórum não cita exemplos, se souber de outros eu gostaria de recomendações!
avatar
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6042
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 289

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

Re: Random usar "exceto"

em Seg 24 Fev 2014, 17:47
Reputação da mensagem: 100% (1 votos)
ds_lists são como listas de mercado.

a = ds_list_create() // criei uma lista

ds_list_add(a, 'valor') // adicionei um valor na lista, ele está na posição 0
ds_list_add(a, 20) // adicionei um outro valor na lista, ele está na posição 1

ds_list_find_index(a, 20) //vai pesquisar onde está 20 na lista, ou seja, 1

ds_list_find_value(a, 0) // vai pegar o valor na posição 0, ou seja, 'valor'

E por aí vai.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 35

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuáriohttp://www.craftstudios.com.br

Re: Random usar "exceto"

em Seg 24 Fev 2014, 18:52
interessante gostei mesmo, resumido e bem explicado, vlw ae
Conteúdo patrocinado

Re: Random usar "exceto"

Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum