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

[Sugerencia] Mi solución

Esta es mi versión del juego, cambie pequeñas partes para simplificar el código

// Menú del juego
let modo = parseInt(prompt('Modos de juego \n\n 1) Rango de 1 a 10\n 2) Rango de 1 a 100\n 3) Rango de 1 a 1000\n\n¿Con que rango quieres jugar? '));

// Asegura que se escoga un modo de juego válido
while(modo < 1 || modo >3){
    modo = parseInt(prompt('Escoge una opción valida: '));    
}

// Delimita el rango máximo del número aleatorio
if (modo == 1){
    let rangoMax = 10;
} else modo = parseInt(`${rangoMax == 2 ? '100' : '1000'}`);

// Declaración de variables
let numSecreto = Math.floor(Math.random() * modo) + 1;
let numUsuario = 0;
let intento = 1;
// console.log(`Número secreto: ${numSecreto}`);
// console.log(`Rango de juego: ${rangoMax}`);

// Programa principal
while(numUsuario != numSecreto){
    numUsuario = parseInt(prompt('Escoge un numero: '));
    console.log(`Número elegido ${numUsuario}, intento ${intento}`);

    // Verifica si acertamos el número secreto
    if(numUsuario == numSecreto){
        alert(`¡Felicidades, acertaste el número secreto!\n\n Lo hiciste en ${intento} ${intento == 1 ? 'intento' : 'intentos'}`);
        break;
    } else {
        alert(`El número es ${numUsuario > numSecreto ? 'menor' : 'mayor'}`);
    }

    intento++;

    // Delimita el número de intenos de acuerdo al modo o rango seleccionado
    if(modo == 1 && intento > 3){
        alert('Llegaste al número de intentos permitidos.');
        break;
    } else if(modo == 2 && intento > 5){
        alert('Llegaste al número de intentos permitidos.');
        break;
    } else if(intento > 10){
        alert('Llegaste al número de intentos permitidos.');
        break;
    } 
}
1 respuesta

Hola Alexis, espero que estés bien

¡Gracias por compartir tu versión del juego! Parece que has hecho un buen trabajo simplificando el código. Sin embargo, he notado un pequeño detalle que podría estar causando un comportamiento inesperado. En la parte donde determinas el rangoMax, hay un pequeño error de lógica en la asignación de valores. Actualmente, estás utilizando:

if (modo == 1){
    let rangoMax = 10;
} else modo = parseInt(`${rangoMax == 2 ? '100' : '1000'}`);

En esta línea, parece que estás intentando asignar el valor de rangoMax en función del modo seleccionado, pero en realidad estás reasignando el valor de modo. Aquí está una posible corrección:

let rangoMax;
if (modo == 1){
    rangoMax = 10;
} else if (modo == 2) {
    rangoMax = 100;
} else {
    rangoMax = 1000;
}

Con esta corrección, rangoMax se establecerá correctamente según el modo de juego seleccionado. Luego, asegúrate de usar rangoMax al calcular numSecreto:

let numSecreto = Math.floor(Math.random() * rangoMax) + 1;

Esto debería resolver el problema y hacer que el juego funcione correctamente dentro del rango seleccionado. Espero que esta sugerencia te sea útil.

Espero haber ayudado y buenos estudios!