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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
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?

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

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

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.
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
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: Random usar "exceto"

em Qui 13 Fev 2014, 21:40
É o contrário.
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?
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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);
}

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!)
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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.
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!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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.
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
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