encontre esto:
Aunque esté en formato código,tienes que desactivar la opción "usa caretos".
He probado a incluir la librería stdlib.h para no tener que implementar la función rand() en el código y no me da error.
La función rand() realiza una serie de pasos matemáticos para llegar a un resultado considerado "aleatorio".Estos pasos parten del valor de una variable "semilla"(_Randseed).Si esta semilla tiene siempre el mismo valor,obtendrás una secuencia de aleatorios que se repetirá de forma consecutiva.Para variar el valor de esta semilla se usa la función srand(semilla),también incluída en la librería,por lo que se me ocurre que cambies el valor de la semilla antes de cada llamada a rand().Podrías conseguirlo por ejemplo asignándole a la semilla el valor de alguna de las dos variables de control que usasen los bucles "for",que en cada iteración tendrían un valor diferente.Puede que tampoco fuese del todo aleatorio,pero la repetición de secuencias sería en menor grado.
Podrías intentar que los caracteres de las dos cadenas se fueran descubriendo tb de forma aleatoria,así quedaría más chulo.
Podría servir crear un array de enteros(ya que de booleanas no se puede) de igual longitud a tus cadenas que te indicase que carácter está descubierto y que carácter no lo está.Así en cada una de las iteraciones que descubren caracteres de la cadena,llamas a rand() para que te devuelva una posición de la cadena,compruebas si ya está destapada,y si no lo está la descubres.
La implementación de rand() y srand() podría ser algo asi:
Codigo:
#define RAND_MAX 255
#define LONG_CADENA 14
unsigned int32 semilla = 1;
long rand(unsigned int maximo)
{
semilla = semilla * 1103515245 + 12345;
return ((unsigned long)(semilla >> 16) % maximo);
}
void srand(unsigned int32 seed)
{
semilla = seed;
}
y está en
http://todopic.mforos.com/46840/2307248-microcursillo-en-c/?pag=5es correcto con lo que tú dices ?
gracias por responder !
saludos