Ayuda: Comportamiento raro del "Random" en PAlib ¿alternativas?

Hola, esoy en un proyecto muy simple y corto que he decidido hacer con PAlib por su rapidez, pero me he dado cuenta que la funcion random funciona algo mal...

Inicializo en Main asi:
PA_InitRand (void)
Auto-seeds the Rand function based on the clock !

despues utilizo en varias funciones esta funcion...
u32 PA_RandMinMax (u32 min, u32 max)
Gives a random number, between the 2 given numbers (included)

y siempre me repite las mismas secuencias, y para tirar un dado de 6 caras, eso no sirve de nada...

Yo recuerdo haber usado antes los dados, pero antes no tenia problemas, alguien sabe si han actualizado y se la han cargado sin darse cuenta? o la utilizo mal?

alguien sabe alguna alternativa.?
No tiene una funcion para cambiar la seed del generador de numeros aleatorios?
Usa el random de math y... deja de empezar proyectos
gracias.
ahora lo pruevo... lo de empezar proyectos... es mi perdicion... pero cuando paso un periodo sin programar alguno (examenes) despues me apetece empezar otro y pasa un poco de tiempo hasta que retomo el anterior... Aunque esta vez sera corto.

Edito:

Ya he provado lo de Rand();

int tirardado(int min,int max){
int dado=0;

dado = rand() % (max-min+1) + min; // Este está entre M y N

return dado;

pero los resultados son extraos... mirar se repiten varias series...

Vez1:6 1 3 1 2 5 3 5 5 1 4 4 6 1 4 3 4 4 2 2 5 2 4 2 6
Vez2:6 1 3 4 1 5 3 1 3 1 4 4 6 1 4 3 4 3 2 2 1 3 4 6 5


Edito2:

creoq eu el problema viene porque en mi programa, no se puede calcular bien el tiempo, llamo a la funcion que me dice los segundospara usar con un srand y siempre me da 4... ¬¬


Edito3:
jeje este es el hilo que mas he editado... creo...

Bueno, creo que ya se donde estaba el problema usaba una variable global (lo siento, pero era mas rapido... no me riñas webez XD) que se llamaba "seconds" y creo que estaba machacando a alguna de PAlib... bueno, la de PAlib (que parece siemprre vale 4... ) macahacaba la mia...
El rand() de C, no produce numeros aleatorios, sino pseudoaleatorios, quiero decir que basan la aleatoriedad en un valor semilla sobre el que van haciendo operaciones para obtener otro valor.

Hay dos formas de modificar el valor semilla para obtener una mayor aleatoriedad:

-Cambiando el valor semilla con la funcion srand(x); para el mismo valor de x en distintas ejecuciones obtendrás los mismo resultados.

-Llamando al principio del programa a la función "srand(time(NULL))", obtendrás sesenta numeros semilla diferentes segun el momento en que inicies la ejecución del programa.

Espero que ésto te sirva de algo.

SaludoS!!!
si, gracias.

ya lo habia hecho, a la altura del "edit 3" loq ue he hecho es concatenar la hora, los minutos y los segundos de la ds, y se ha hecho un numero grande que aun se repite menos...

Bueno, gracias a todos, este proyecto lo sacare cuando este algo mas avnzado...
5 respuestas