1. Code
  2. JavaScript

Consejo rápido: Obtener un número aleatorio dentro de un rango especificado usando AS3

A menudo necesitamos usar un número generado aleatoriamente para ciertas situaciones; el uso de Math.random() * n normalmente hará el truco, pero sólo calculará un número de 0 a n. ¿Y si necesitamos un número que no da 0 como valor mínimo? ¿Cómo se puede generar un número aleatorio entre 100 y 1000? Te mostraré cómo hacerlo en este Consejo Rápido.
Scroll to top
2 min read
This post is part of a series called You Do The Math.
Quick Tip: Trigonometry for Flash Game Developers

Spanish (Español) translation by Esther (you can also view the original English article)

A menudo necesitamos usar un número generado aleatoriamente para ciertas situaciones; el uso de Math.random() * n normalmente hará el truco, pero sólo calculará un número de 0 a n. ¿Y si necesitamos un número que no da 0 como valor mínimo? ¿Cómo se puede generar un número aleatorio entre 100 y 1000? Te mostraré cómo hacerlo en este Consejo Rápido.

Resultado final

Este ejemplo demuestra la función que vamos a crear:

Introduce dos números separados por un ',' y pulsa el botón de aleatorio.


Paso 1: Breve descripción

Usando una función creada en ActionScript 3, calcularemos un número entre dos valores. Estos valores se pasarán como parámetros y se usarán con Math class para generar un número aleatorio.


Paso 2: Crear un nuevo archivo

Abre Flash y crea un nuevo archivo Flash (ActionScript 3.0).


Paso 3: Abrir el panel de acciones

Presiona Option (Opción) + F9 o ve a Window (Ventana) > Actions (Acciones) para abrir el Actions Panel (Panel de acciones).


Paso 4: Declaración de la función

Declara una función y nómbrala randomRange; esta función devolverá el número aleatorio, así que establece el tipo de devolución en Number.

1
function randomRange():Number 
2
{

Step 5: Establecer parámetros

Se usarán dos parámetros para calcular el número.

  • minNum: El valor mínimo a devolver
  • maxNum: El valor máximo a devolver
1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{

Paso 6: Escribir la función principal

Esta es la función con la línea generadora de números aleatorios reales. La potencia de las matemáticas se utiliza para generar el número.

1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{
3
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
4
}

Paso 7: Cómo funciona

Tenemos nuestra función de generador de números aleatorios, pero ¿qué hace esta función?

Echa un vistazo a la siguiente imagen para tener una mejor idea:

En el ejemplo de la imagen, si Math.random() fuera menos de 0,5, el resultado sería 550.


Paso 8: Prueba con un trazo

Una forma sencilla de probar la función es usar una función trace(). Mira el código a continuación:

1
function randomRange(minNum:Number, maxNum:Number):Number 
2
{
3
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
4
}
5
6
trace(randomRange(10, 20)); //A number between 10 and 20

Paso 9: Ejemplo

Este es un ejemplo de trabajo, utiliza un botón para calcular el número y mostrarlo en un TextField.

1
/* The randomRange function */
2
3
function randomRange(minNum:Number, maxNum:Number):Number 
4
{
5
	return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
6
}
7
8
/* The actions that will perform when the button is pressed */
9
10
function buttonAction(e:MouseEvent):void
11
{
12
	//An array will store the numbers in the textfield

13
	var n:Array = inputText.text.split(","); 	
14
	
15
	//Calculate the number based on the input, convert the result to a string

16
	//and send that string to the textfield

17
	generatedNumber.text = String(randomRange(n[0], n[1]));
18
}
19
20
//Add button's event listener

21
actionButton.addEventListener(MouseEvent.MOUSE_UP, buttonAction);

Introduce dos números separados por un ',' y pulsa el botón de aleatorio.


Conclusión

Este es un ejemplo básico de cómo puedes usar esta función; ¡experimenta y úsala en tus propios proyectos!

¡Gracias por leer!