Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Milton884 on August 21, 2012, 07:48:07 PM

Title: Problemas con numeros aleatorios!
Post by: Milton884 on August 21, 2012, 07:48:07 PM
Hola que tal? Estoy intentando colocar 3 de los Enemigos de mi videojuego, en coordenadas X diferentes, pero se colocan uno encima del otro... y siempre en el mismo lugar, para poder hacerlo aleatorio (cosa que repito no me anduvo, puse)
(en el proceso del enemigo)
...
   rand_seed(time());
    x=rand(50,750);
...


Despues en el modulo principal invoco 3 enemigos:


enemigo();
enemigo();
enemigo();



Y como dije, quedan uno encima del otro, y siempre en la misma coordenada X.. Alguien podria ayudarme?
Agradezco mucho. Saludos !
Title: Re:Problemas con numeros aleatorios!
Post by: FreeYourMind on August 21, 2012, 08:33:22 PM
tienes que iniciar la semilla, que sino el primer valor es siempre el mismo (segun procesador)
Title: Re:Problemas con numeros aleatorios!
Post by: Rein (K´)ah Al-Ghul on August 21, 2012, 08:50:09 PM
Quote from: FreeYourMind on August 21, 2012, 08:33:22 PM
tienes que iniciar la semilla, que sino el primer valor es siempre el mismo (segun procesador)
ya usa rand_seed...

Quote
Notes  To synchronize rand() on different computers, the function rand_seed (http://wiki.bennugd.org/index.php?title=Rand_seed)() can be used.
Rand() is not a very good function on itself. To counter this, the following rand2() can be used
Title: Re:Problemas con numeros aleatorios!
Post by: FreeYourMind on August 21, 2012, 09:26:51 PM
si es cierto, creo que faltan detalles del proceso enemigo, igual crea los 3 en el proceso principal y le pasa la misma x a los 3 hijos.
Title: Re:Problemas con numeros aleatorios!
Post by: SplinterGU on August 21, 2012, 09:28:01 PM
Quote from: FreeYourMind on August 21, 2012, 08:33:22 PM
tienes que iniciar la semilla, que sino el primer valor es siempre el mismo (segun procesador)

jajaja, lo hace, esta claro en el texto que puso...

no tienes que reinicializar la semilla dentro del proceso enemigo, sino 1 sola vez en todo el codigo, y cuando arranca el programa.

si lo haces dentro del proceso enemigo, (al usar time() como semilla) estas poniendo la misma semilla para todos los procesos enemigo (dentro del mismo segundo), y por ende, obtienes los mismos valores randoms ya que 3 procesos se ejecutan dentro del mismo segundo sin dudarlo.
Title: Re:Problemas con numeros aleatorios!
Post by: Milton884 on August 21, 2012, 10:00:07 PM
Entiendo Splinter, se me paso de largo eso, ahora entiendo perfectamente. Te agradezco y a todos los que ayudaron en este post.


Saludos !
Title: Re:Problemas con numeros aleatorios!
Post by: SplinterGU on August 21, 2012, 10:59:13 PM
de nada, saludos.