Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

[Duda] Contador de Intentos

**A la hora de actualizar el código el contador me marca que lo he intentado en 600458 veces y está igual la sintaxis , ¿me ayudan? :( **

let numeroSecreto = 4;
let numeroUsuario = 0;
let intentos = 1;
let palabraVeces = 'vez';
while (numeroUsuario != numeroSecreto) {
let numeroUsuario = prompt("Me indicas un numero entre 1 y 10 por favor:");
console.log(numeroUsuario);
if (numeroUsuario == numeroSecreto) {
//Acertamos,fue verdadera la condicion
alert(Acertaste, el numero es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces});
} else {
//La condicion no se cumplio
if(numeroUsuario > numeroSecreto) {
alert ('El numero secreto es menor');
} else {
alert('El numero secreto es mayor')
}
//Incrementamos el contador cuando no acierta
intentos = intentos + 1;
palabraVeces = 'veces';
//La condicion no se cumplio
//alert('lo siento, no acertaste el numero');
}
}

3 respuestas

¡Hola! Estás muy cerca, solo hay algunos detalles que se pueden mejorar. Te dejo una versión corregida para que la compares con la tuya:

let numeroSecreto = 4;
let numeroUsuario = 0;
let intentos = 1;
let palabraVeces = 'vez';

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

    if (numeroUsuario === numeroSecreto) {
        alert(`¡Acertaste! El número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces}`);
    } else {
        if (numeroUsuario > numeroSecreto) {
            alert('El número secreto es menor');
        } else {
            alert('El número secreto es mayor');
        }

        intentos++;
        palabraVeces = 'veces';
    }
}

Cambios importantes:

Evité declarar dos veces numeroUsuario dentro del bucle.

Usé template literals (`) para que la interpolación funcione correctamente.

Convertí el valor del prompt a número con parseInt().

¡Sigue practicando, vas por buen camino! Si quieres, puedo explicarte paso a paso por qué se hicieron estos cambios.

me gustaría, gracias:(
mi confusión se debe a que no estoy aplicando bien el meterlo dentro del bucle ?
(es que me guíe por la clase)

¡No te preocupes, es normal confundirse con esto al principio!
El problema no era solo meter el código dentro del bucle, sino algunos detalles que afectaban el funcionamiento:

Declarabas numeroUsuario dos veces: una fuera y otra dentro del bucle. Solo necesitas declararlo una vez, antes del while. Dentro del bucle solo le asignamos el nuevo valor.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

El prompt devuelve texto, por eso usamos parseInt() para convertirlo en número y poder compararlo correctamente con numeroSecreto.

La alerta de acierto no funcionaba porque faltaban las comillas y los backticks ( ) para usar las variables dentro del mensaje. (Esto último me parece que es más acá del foro que no se visualizan )