[C con Clase] Funcion para números aleatorios random
Asdrúbal Iván Suárez Rivera
asdrubal.ivan.suarez.rivera en gmail.com
Sab Mar 3 18:14:27 CET 2012
Curiosamente tuve un problema similar hace unos días... Yo lo resolví de
esta forma
Donde:
int generaNroAleatorio(){
int num,c;
srand(time(NULL));
num = limite_inferior + rand()
%(limite_superior-limite_inferior); // genero nro aleatorio entre 0 y 9
return num;
}
pon
int generaNroAleatorio(){
int num,c;
static bool inicializado = false;
if(!inicializado){
srand(time(NULL));
inicializado = true;
}
num = limite_inferior + rand()
%(limite_superior-limite_inferior); // genero nro aleatorio entre 0 y 9
return num;
}
La variable con la palabra clave static SÓLO será inicializada una vez. La
semilla por algunas razones debería inicializarse una vez. Prueba ahora a
ver
El 3 de marzo de 2012 12:06, Diego <diegoartesanal en gmail.com> escribió:
> Hola a todos. Bueno en primer lugar, sigo teniendo problemas (debe ser mi
> ISP : Movistar Perú) que tengo problemas y no puedo entrar a
> c.conclase.net, tuve que finalmente usar en proxy para poder ingresar
> nuevamente a la web.
>
> Bueno, voy a lo siguiente, estoy terminando de hacer una buscaminas con
> listas dinámicas y sólo me falta ubicar las minas en el tablero, para ellos
> quiero generar posiciones de manera aleatoria, estoy probando con este
> código:
>
> Hago uso de 2 constantes:
>
> #define limite_inferior 0
> #define limite_superior 10
>
>
>
> Tengo mi función generaNroAleatorio
>
>
> int generaNroAleatorio(){
> int num,c;
> srand(time(NULL));
> num = limite_inferior + rand()
> %(limite_superior-limite_inferior); // genero nro aleatorio entre 0 y 9
>
> return num;
>
> }
>
>
> y desde el main la invoco así:
>
>
> ..... case '7':
> for (int j = 0 ; j< 4; j++) {
> p = ma.generaNroAleatorio();
> cout<<"n :"<<p;
> }
> break;
>
> Simplemente estoy tratando de ver los números que genera, resulta que
> cuando utilizo este *for* en el main, todos los números salen iguales, si
> lo hago de manera manual (apretando '7' de una vez) para ver qué sale,
> también siempre sale el mismo rango de número. Según tenía entendido la
> función srand() define la semilla de dónde se generan los números
> aleatorios, pero bueno, no he encontrado solución todavía.
> Mi objetivo es poder generar números aleatorios y guardarlos en un vector
> ya que esos números los utilizaré como posiciones para colocar las minas en
> mi juego. Luego validaré que los números no se repitan .
>
> Bueno , espero que alguien me pueda dar una mano .
> Saludos gente!
> Diego.
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
--
Asdrúbal Iván Suárez Rivera
*El éxito de alguien que enseña no es que sepa mucho, sino que lo poco que
sabe lo sepa hacer llegar.*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120303/4f139465/attachment.html>
Más información sobre la lista de distribución Cconclase