Generación de Números Aleatorios con JavaScript
Clase 10 de 84 • Curso Gratis de Programación Básica
Resumen
Ya programamos lo básico para que el juego funcione. Pero es momento de hacer que el computador elija por si solo entre piedra, papel, o tijera. Necesito compartirte algunos fundamentos para que realices la práctica de hoy. Estos son:
El objeto “Math” en JavaScript
En JavaScript existen entidades llamadas “Objetos” que guardan dentro de ellas variables (que se llaman “propiedades” cuando viven dentro de un objeto) y funciones (que se llaman “métodos” cuando viven dentro de un objeto.
En este sentido, Math es un objeto especial en JavaScript que contiene dentro de él numerosas funciones y valores que son esenciales para hacer cálculos matemáticos, como el número PI o la función de redondear números decimales.
¿Cómo usar el objeto Math de JavaScript?
Debes escribir “Math” (atención a la “M” en mayúscula), luego un punto (”.”) y finalmente la propiedad o método que desees invocar.
Si deseas invocar un método, recuerda que debes escribir los paréntesis “( )” para que el método se ejecute.
Ejemplos de propiedades
Propiedades de Math | Para qué sirve |
---|---|
Math.PI |
Cuándo el código se ejecuta, el navegador sustituye esto por el número PI. |
Math.E |
Cuándo el código se ejecuta, el navegador sustituye esto por la constante de Euler. |
Ejemplos de métodos
Métodos de Math | Para qué sirven |
---|---|
Math.ceil() |
Redondea hacia arriba el número decimal que esté entre los paréntesis, hasta convertirlo en un número entero. |
Math.floor() |
Redondea hacia abajo el número decimal que esté entre los paréntesis, hasta convertirlo en un número entero. |
Math.round() |
Redondea el número decimal entre paréntesis hacia el entero más cercano. |
Math.random() |
Retorna un número decimal aleatorio entre el 0 (incluido) y el 1 (excluido). |
Prueba estos valores y métodos en la consola del navegador 🙂
¿Cómo declarar funciones en JavaScript?
Cuando encuentras un segmento de código que puede repetirse dentro del programa, o que ejecuta un proceso muy específico dentro de tu código, entonces lo ideal es encapsularlo en una función.
Hay varias formas de declarar una función. Pero la más básica de todas consiste en escribir la palabra reservada function
, seguida de la función con sus parámetros entre paréntesis, y el bloque de código entre llaves { }
.
Ejemplo:
function hacerAlgo( param1 , param2 ) {
let resultado = param1 + param2;
return resultado;
}
hacerAlgo( 3 , 4 ); //Devuelve 7
Cuando ejecutas la función, esta ejecuta todo el código que insertaste dentro de las llaves { }
cuando la declaraste. De este modo, puedes ejecutar la función tantas veces como necesites con solo declararla una vez.
Cuando la declaras, puedes indicar parámetros y usarlos dentro del bloque de código. Luego, cuando la ejecutes, esos parámetros se sustituirán con los valores que escribas entre paréntesis al momento de ejecutarla.
También puedes utilizar la palabra reservada return
dentro del bloque de código de la función para que, al ejecutarla, recibas el valor que indiques luego de escribir return
(ojo, cuando la función llega a un return
, su ejecución se detiene. Los comandos que escribas después de un return
no se van a ejecutar).
Haz algunos experimentos con esto en la consola antes de continuar 😉
Generando una elección aleatoria para el computador
Intentemos ahora emplear lo aprendido para hacer que la computadora elija piedra, papel o tijera por si sola. Para hacerlo, primero tenemos que entender cómo funcionaría el algoritmo que le permite hacer la selección, y luego tendríamos que introducirlo en nuestro código.
Algoritmo de selección aleatoria
Primero necesitamos generar un número aleatorio. Ya sabemos que Math.random()
nos entrega un número aleatorio entre 0 y 1. Sin embargo, nuestro juego necesita un número aleatorio entre 3 y 1 para funcionar. ¿Se te ocurre cómo podrías crearlo con código?
Para lograrlo, la operación sería esta:
Math.random() * ( max - min + 1 ) + min
Si consideramos que nuestro valor máximo es 3 y el mínimo es 1, esto nos garantiza que siempre obtendremos un número entre 3.9999’ y 1. Por lo tanto, solo tendríamos que meter todo dentro de un Math.floor()
para obtener un valor aleatorio entre 3 y 1.

Por lo tanto, para conseguir que la computadora elija aleatoriamente, necesitaríamos el siguiente código:
//OBTENIENDO LA ELECCIÓN DEL COMPUTADOR
let max = 3;
let min = 1;
let eleccionDelComputador = Math.floor( Math.random() * ( max - min + 1 ) + min );
Introduce esto en tu código, y prueba a ver como funciona 🙂
Convirtiendo el algoritmo en una función
Ahora, ¿por qué no intentas convertir eso en una función? Te dejaré una posible solución aquí abajo para que compares, pero intenta hacerlo por tu cuenta antes de fijarte en ella 😉
//OBTENIENDO LA ELECCIÓN DEL COMPUTADOR
function numeroAleatorio( min , max ) {
return Math.floor( Math.random() * ( max - min + 1 ) + min );
}
let eleccionDelComputador = numeroAleatorio( 1 , 3 );
Haz el cambio y prueba tu juego 😁 Sin embargo, ¿Crees que podrías escribir el mismo código en menos líneas? 🤔 No hablo de borrar espacios o líneas, hablo de emplear una lógica diferente para llegar al mismo resultado. Una que requiera menos pasos, y que aun así llegue al mismo sitio 🙂
Piensa un poco al respecto, experimenta un poco, y cuando estés satisfecho y todo funcione, acompáñame a aprender más sobre como usar funciones para mejorar la calidad de tu código 😉 Nos vemos allá 😁
Contribución creada por Jhonkar Sufia (Platzi Contributor).