Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Cambiando el valor de las variables

javascript alert('Bienvenidos al juego del número secreto'); let eleccion = prompt('Elige un número entre 1 y 10');

let numeroSecreto = 4;

if (eleccion == numeroSecreto) { alert('Adivinaste'); }

1 respuesta

En código del ejercicio de estudio:

alert('Bienvenidos al juego del número secreto');
let eleccion = prompt('Elige un número entre 1 y 10');

let numeroSecreto = 4;

if (eleccion == numeroSecreto) {
    alert('Adivinaste');
} 

¿Qué variable tendrías que cambiar para cambiar el número secreto en cada ronda del juego? La respuesta es:

  • Téngase en cuenta que cada vez que el juego inicia, el valor guardado en la variable (la cajita) es el numero 4. Si pretendemos que este valor sea diferente cada vez que entremos, y que su valor este comprendido dentro del rango 1 al 10 incluidos, necesitaremos ajustar la linea de código:
let numeroSecreto = 4;

Aquí, después de investigar un poco, podríamos usar algo como:

let numeroSecreto = Math.floor(Math.random() * 10) + 1;

Tratare de explicar esta linea:

  • Math.random() Con esto logramos generar un decimal aleatorio comprendido entre 0 1. No obstante ese numero puede ser, 0, 0.1, 0.2, 0.3, ... 0.9. Es decir que el Cero esta incluido en el rango, pero el 1 no lo esta, por tanto el decimal, podría estar lo mas cerca del 1, pero jamás llegar a ser un 1 absoluto.
  • Math.random() * 10 Nos permite ajustar el rango entre 0 y 10, dejando claro, que el numero secreto podría ser cualquier decimal entre 0 y 9.9, es decir lo mas cerca posible de un 10, pero jamás un 10 absoluto. Si nos preguntamos porque multiplicar por 10, la respuesta esta en que al ejecutarse el código, el sistema solicita al usuario que este ingrese un numero entre 1 y 10.
  • Math.floor( ... ) Como hemos hablado, el numero aleatorio es un decimal, pero con la función Math.floor() logramos ajustar o redondear el decimal que se genere de forma aleatoria, al numero entero inferior a este. Es decir, si se genero un decimal aleatorio como 3.67 Math.floor() redondeara este numero en un entero inferior, es decir: 3.
  • +1 Sumamos uno por una sencilla razon. Hemos dicho que el 10 no esta incluido en el rango, pero si le hemos pedido al usuario que ingrese un numero entre 1 y 10. ¿Qué pasaría si el usuario ingresa 10? y sabemos que el sistema generara decimales que lleguen lo mas cerca de 10 pero jamás a 10.0. En este caso, el sistema no haría nada, por eso sumamos 1, para que en el caso extremo que el sistema genere aleatoriamente cualquier numero entre: *-0 y 0.999 este se convierta en un (1 o 1.999) y sabemos que el entero mas inferior seria 1 (Que es el numero mínimo que debe ingresar el usuario). * *9 y 9.999 este se convierta en un (10 o 10.999) y sabemos que el entero mas inferior seria 10 (Que es el numero máximo que debe ingresar el usuario). *

Por tal motivo, la linea:

let numeroSecreto = Math.floor(Math.random() * 10) + 1;

Genera un numero aleatorio entero entre 1 y 10 incluidos el 1 y el 10 y lo almacena en numeroSecreto, entonces solo si el usuario ingresa un numero que milagrosamente coincide con el numero generado aleatoriamente por el sistema, le mostrara el mensaje de que ha acertado.

Un feliz dia para todos..!