[Resolvido]Por que o random me odeia?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [Resolvido]Por que o random me odeia?

Mensagem por Dialga111 em Sab 26 Jun 2010, 17:52

Oie, não sei se alguém lembra, mas eu sou o cara que tava criando um jogo de luta com 26 personagens no outro tópico (seleção de personagens)

Bom, estou com outro probleminha: ao selecionar o personagem eu vou para uma room e crio o personagem inimigo. Porém, o inimigo tem que ser escolhido aleatoreamente, entre os 26 personagens (sim, você pode lutar contra si mesmo). E é aí que mora o problema.

Tentei o seguinte:

-ao clicar no personagem na tela de seleçao, vai para a room do personagem, que tem o personagem e o objeto inimigo (que não tem sprite). Ainda ao clicar, a variável global.inimigo recebe um valor aleatório

Código:

global.inimigo = random_range(1,26)

Sim, eu declarei a variavel global em um objeto controle na primeira room.

Então, aí, no objeto inimigo, no evento create eu coloquei um script assim:

Spoiler:
if not global.inimigo=1
{
if not global.inimigo=2
{
if not global.inimigo=3
{
if not global.inimigo=4
{
if not global.inimigo=5
{
if not global.inimigo=6
{
if not global.inimigo=7
{
if not global.inimigo=8
{
if not global.inimigo=9
{
if not global.inimigo=10
{
if not global.inimigo=11
{
if not global.inimigo=12
{
if not global.inimigo=13
{
if not global.inimigo=14
{
if not global.inimigo=15
{
if not global.inimigo=16
{
if not global.inimigo=17
{
if not global.inimigo=18
{
if not global.inimigo=19
{
if not global.inimigo=20
{
if not global.inimigo=21
{
if not global.inimigo=22
{
if not global.inimigo=23
{
if not global.inimigo=24
{
if not global.inimigo=25
{
instance_create(600,176,inimigo_A)
}
else
instance_create(600,176,inimigo_B)
}
else
instance_create(600,176,inimigo_C)
}
else
instance_create(600,176,inimigo_D)
}
else
instance_create(600,176,inimigo_E)
}
else
instance_create(600,176,inimigo_F)
}
else
instance_create(600,176,inimigo_G)
}
else
instance_create(100,100,inimigo_H)
}
else
instance_create(100,100,inimigo_I)
}
else
instance_create(600,176,inimigo_J)
}
else
instance_create(600,176,inimigo_K)
}
else
instance_create(600,176,inimigo_L)
}
else
instance_create(600,176,inimigo_M)
}
else
instance_create(600,176,inimigo_N)
}
else
instance_create(600,176,inimigo_O)
}
else
instance_create(600,176,inimigo_P)
}
else
instance_create(600,176,inimigo_Q)
}
else
instance_create(600,176,inimigo_R)
}
else
instance_create(600,176,inimigo_S)
}
else
instance_create(600,176,inimigo_T)
}
else
instance_create(600,176,inimigo_U)
}
else
instance_create(600,176,inimigo_V)
}
else
instance_create(600,176,inimigo_W)
}
else
instance_create(600,176,inimigo_X)
}
else
instance_create(600,176,inimigo_Y)
}
else
instance_create(600,176,inimigo_Z)

Tá, até aí tudo bem, mas sempre que eu testo sai o inimigo_Y, e nunca nenhum outro! Não consigo entender o q estou fazendo de errado ou o qual é o jeito certo. Já usei as variáveis random, random_set_seed, randomize e random_range, mas dá sempre a mesma coisa (aliás, se alguém puder me explicar qual é a diferença entre elas, ficarei muito grato)

Por favor, me ajudem!

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por makgamer em Sab 26 Jun 2010, 17:59

oO
que isso?????
n é tao dificil...
cria uma variavel global.personagem com o valor 0
ai na hora que vai por aleatoriamente coloca
Código:
global.personagem = choose("fulano","fulando2","fulano3")
ai na hora da porrada coloca:
Código:
if global.personagem = fulano2 then instance_create(x,y,enemy_fulano2)
if global.personagem = fulano then instance_create(x,y,enemy_fulano1)
if global.personagem = fulano3 then instance_create(x,y,enemy_fulano3)
ai sim e aleatorio...
na hora do random ele vai escolher entre fulano1,fulano2 ou fulano3
e na hora da porrada ele vai criar a escolha no random

makgamer

Ranking : Nota D
Número de Mensagens : 927
Idade : 18
Data de inscrição : 29/03/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   : 1
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por reddragon em Sab 26 Jun 2010, 18:04

original no help do GM8

random(x) Returns a random real number between 0 and x. The number is always smaller than x.

random_range(x1,x2) Returns a random real number between x1 (inclusive) and x2 (exclusive).

random_set_seed(seed) Sets the seed (an integer) that is used for the random number generation. Can be used to repeat the same random sequence. (Note though that also some actions and the system itself uses random numbers.)

colocado no google tradutor:

random (x) Retorna um número real aleatório entre 0 e x. O número é sempre menor do que x.

random_range (x1, x2) Retorna um número real aleatório entre x1 (inclusive) e x2 (exclusive).

random_set_seed (semente) Define a semente (um inteiro) que é usado para a geração de números aleatórios. Pode ser usado para repetir a mesma seqüência aleatória. (Note que apesar de algumas ações e também o próprio sistema usa números aleatórios).

reddragon

Número de Mensagens : 267
Idade : 27
Data de inscrição : 19/03/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por Dialga111 em Sab 26 Jun 2010, 18:06

makgamer, a função choose só me deixa escolher um máximo de 16 valores, eu preciso de 26 :/ tem como ter mais?

reddragon, valeu pela explicação, eu tinha olhado no help mas num tinha entendido direito x.x

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por Kevin em Sab 26 Jun 2010, 18:11

tipow... pro CHOOSE aceitar Mais Valores é só fazer assim: (por exemplo)

choose(choose(valor1,valor2),choose(valor3,valor4),choose(valor5,valor6))

e assim por diante ;)

FLWs Té + Smile

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por reddragon em Sab 26 Jun 2010, 18:18

talvez assim:

Código:
i = floor(1 + random(25))

switch(i){
case 1:
instance_create(x,y,enemy_fulano1)
break;
case 2:
instance_create(x,y,enemy_fulano2)
break;
case 3:
instance_create(x,y,enemy_fulano3)
break;
case 4:
instance_create(x,y,enemy_fulano4)
break;
.
.
.
.
case 26:
instance_create(x,y,enemy_fulano26)
break;
}

floor é um comando de arredondamento porque o comando random um numero Real positivo, isto é, fracionado. mas o floor arredondando ele para baixo e somando com 1 conseguimos o intervalo de random que você quer.




reddragon

Número de Mensagens : 267
Idade : 27
Data de inscrição : 19/03/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por victor_aco em Sab 26 Jun 2010, 18:21

Tenta colocar isso:
Código:
global.inimigo = irandom_range(1,26)
vai deixar o numero inteiro

victor_aco

Número de Mensagens : 666
Idade : 21
Data de inscrição : 25/03/2010
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por Dialga111 em Sab 26 Jun 2010, 18:23

:O que momento lindo deu certooooo

vlw gente!!!

se algum admin quiser, ja pode trancar o tópico, problema resolvido!

VLW PESSOAS!

Dialga111

Número de Mensagens : 33
Data de inscrição : 13/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por Janx em Sab 26 Jun 2010, 19:32

Tópico resolvido.



Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Por que o random me odeia?

Mensagem por Conteúdo patrocinado Hoje à(s) 22:19


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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