int rand( int mínimo, máximo )
Retorna:
Un valor numérico aleatorio.
Descripción:
Devuelve un número aleatorio (escogido al azar) entre el valor mínimo y el valor máximo, ambos incluidos.
Esta función se suele utilizar para establecer todos los parámetros que se quiere que varíen en un juego de una partida a otra; por ejemplo, se pueden inicializar las coordenadas de un enemigo con números aleatorios, para que en cada partida pueda aparecer en una posición diferente.
Otra utilidad de esta función es cuando se quiere que una acción no suceda siempre, sino que tenga una cierta probabilidad de suceder; esto se suele implementar con una sentencia del tipo:
if ( rand(0, 100) < 25 ){ // Acción ... }
En este caso la acción se realizaría con un promedio del 25 por ciento de las veces que se ejecutara la sentencia if, ya que, al obtener un número al azar entre 0 y 100, éste sólo sería un número menor que 25, aproximadamente una cuarta parte de las ocasiones.
MAIN_PROGRAM_CDIV PRIVATE int tabla[15], contador; BEGIN_PROGRAM set_gfx(GFX_AUTODETECT_FULLSCREEN); set_mode(m320x200); write (0, 0, 192, 0, "Pulse [ESPACIO] para hallar valores aleatorios."); for( contador = 0; contador < 15; contador++ ) write_int(0, 0, contador*10, 0, &tabla[contador]); LOOP { if(scan_code==_space){ for(contador=0;contador<15;contador++) // Se eligen valores aleatorios entre -100 y 100 tabla[contador] = rand(-100, 100); } FRAME; } END_PROGRAM
En el ejemplo se crea una tabla con 16 datos (del 0 al 15). En cada iteración del bucle principal se comprueba si se ha pulsado la barra espaciadora, en cuyo caso se rellenan los 16 datos de la tabla con valores aleatorios entre -100 y 100, elegidos con la función rand().
Por defecto, en cada ejecución del programa los valores que devuelva la función rand() serán completamente diferentes. Si se quiere que la serie de números sea siempre una misma, se puede utilizar para ello la función rand_seed() especificando un número, tras el cual la serie de números que devuelva la función rand() estará siempre predeterminada.
Ver: rand_seed()