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 !
tienes que iniciar la semilla, que sino el primer valor es siempre el mismo (segun procesador)
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
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.
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.
Entiendo Splinter, se me paso de largo eso, ahora entiendo perfectamente. Te agradezco y a todos los que ayudaron en este post.
Saludos !
de nada, saludos.