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

02 Desafío

//Variables
let potenciajuego= parseInt(prompt("indique la potencia del juego. 1=10, 2=100, 3=1000"));
if (potenciajuego == 1 || potenciajuego == 2 || potenciajuego == 3) {
alert("la potencia es: " + potenciajuego);

let numeroSecreto = Math.floor(Math.random()*Math.pow(10, potenciajuego))+1;
let numeroUsuario = 0;
let intentos = 1;
//let palabraVeces = 'vez';
let maximosIntentos = 3;


while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt("Me indicas un número entre 1 y 10 por favor:"));

    console.log(typeof(numeroUsuario));
    if (numeroUsuario == numeroSecreto) {
        //Acertamos, fue verdadera la condición
        alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces' }`);
    } else {
        if (numeroUsuario > numeroSecreto) {
            alert('El número secreto es menor');
        } else {
            alert('El número secreto es mayor');
        }
        //Incrementamos el contador cuando no acierta
        //intentos = intentos + 1;
        //intentos += 1;
        intentos++;

        //palabraVeces = 'veces';
        if (intentos > maximosIntentos) {
            alert(`Llegaste al número máximo de ${maximosIntentos} intentos`);
            break;
        }
        //La condición no se cumplió
        //alert('Lo siento, no acertaste el número');
    }
}

} else {
alert('La potencia del juego no es válida');
}

1 respuesta

Hola Ernesto,

Parece que estás trabajando en un desafío interesante donde necesitas ajustar el rango de números en tu juego de adivinanzas. He revisado tu código y veo que has hecho un buen trabajo al implementar la lógica básica del juego. Sin embargo, hay un pequeño detalle que necesita ser ajustado para que el juego funcione correctamente con el rango que seleccionas al inicio.

En tu código, cuando generas el número secreto, estás usando Math.pow(10, potenciajuego), lo cual está correcto para definir el rango basado en la potencia que el usuario elige (1 para 10, 2 para 100, 3 para 1000). Sin embargo, cuando pides al usuario que ingrese un número, siempre le estás solicitando un número entre 1 y 10, independientemente de la potencia seleccionada.

Para solucionar esto, necesitas ajustar el mensaje del prompt para que refleje el rango correcto. Por ejemplo, podrías cambiar esta línea:

numeroUsuario = parseInt(prompt("Me indicas un número entre 1 y 10 por favor:"));

Por algo como:

numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${Math.pow(10, potenciajuego)} por favor:`));

Este cambio hará que el mensaje se actualice dinámicamente según la potencia que el usuario haya seleccionado, permitiéndole saber cuál es el rango correcto para adivinar el número.