Problemas con numeros aleatorios!

Started by Milton884, August 21, 2012, 07:48:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Milton884

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 !

FreeYourMind

tienes que iniciar la semilla, que sino el primer valor es siempre el mismo (segun procesador)

Rein (K´)ah Al-Ghul

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() can be used.
Rand() is not a very good function on itself. To counter this, the following rand2() can be used

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

FreeYourMind

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.

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

Entiendo Splinter, se me paso de largo eso, ahora entiendo perfectamente. Te agradezco y a todos los que ayudaron en este post.


Saludos !

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2