Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
6
respuestas

[Duda] Contador mal hecho?

Saludos, cuando doy el ok, sin agregar un número en el juego de adivinar, me dice que he realizado 808274 intentos, ¿Por qué sucede esto?, adjunto mi código.

alert('Bienvenido al juego del número secreto');

//Creamos las variables
let numeroSecreto = 4;
let numeroUsuario = 0;
let intentos = 1;

//Repetimos el juego si el usuario no acierta el número secreto.
while (numeroSecreto != numeroUsuario){
numeroUsuario = prompt('Elige un número entre 1 y 10');

// Agrega un console.log para verificar la comparación entre "numeroUsuario" y "numeroSecreto"
console.log('Resultado de la comparación:', numeroUsuario == numeroSecreto);

if (numeroUsuario == numeroSecreto) {
    alert(`Adivinaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} intento(s)`);
} else {
    if (numeroSecreto > numeroUsuario) {
        alert('El numero secreto es mayor');
    } else {
        alert('El numero secreto es menor');
    }
    intentos = intentos + 1;
    // Agrega un console.log para verificar el valor de "numeroSecreto" cuando el jugador se equivoca
    //console.log('Valor del número secreto:', numeroSecreto);
    //alert('El número secreto era ' + numeroSecreto);
}

}

6 respuestas

Me pasa lo mismo

tengo el mismo problema, copie el codigo tal cual el video. No entiendo por que no me funciona

Hola, creo que entendí el problema, y la resolución es más complicada, entonces no ahondaré en ella.

Creo que al apretar enter sin ingresar ningún número se genera un bucle, y por eso salen tantos intentos, porque el código no está recibiendo nada. De igual forma me gustaría si alguien más lo pudiese confirmar.

si me pasa lo mismo, solo sale la cantidad indicada en el primer intento, luego dice el numero de intentos que hiciste anteriormente + los intentos siguientes

solución!

¡Hola, Felipe! hace poco me hicieron un comentario en un código que publiqué, y creo que se relaciona con tu problema

En donde tienes numeroUsuario = prompt('Elige un número entre 1 y 10'); la variable numeroUsuario está recibiendo una cadena de carácteres, si le dan Enter sin escribir nada, no lo interpreta como un número nulo, sino como un texto, lo que puede causar el error.

Para solucionarlo, deberías de utilizar parseFloat() para que se interprete como número, creo que eso no se especifica en el vídeo, de tal forma que tu código debería de ser

...
//Repetimos el juego si el usuario no acierta el número secreto.
while (numeroSecreto != numeroUsuario){
numeroUsuario = parseFloat(prompt('Elige un número entre 1 y 10'));

// Agrega un console.log para verificar la comparación entre "numeroUsuario" y "numeroSecreto"
...

¡Espero que sea de ayuda!

Hola Andre, Muchas gracias, me funcionó.