¡Hola!
Revisando tu código creo que está estructurado de esta manera (como se ve el Visual Studio):
Conforme al código te dejo las cosas que puedes cambiar o revisar, puedes guiate conforme a la línea de código de la izquierda para no perderte:
Estás intentando declarar una variable sin nombre. Esto es un error de sintaxis. Debes asignarle un nombre a la variable, por ejemplo:
let numeroUsuario = 0; // o el valor inicial que necesites
Comparación incorrecta en el while:
while (numeroUsuario != numeroSecreto) {
// ...
}
Aunque esta condición parece correcta, prompt() siempre devuelve una cadena (string), incluso si el usuario ingresa un número. Estás comparando una cadena con un número, lo que puede llevar a resultados inesperados. Debes convertir la entrada del usuario a un número antes de la comparación.
Error de sintaxis en el alert:
alert (Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces});
Faltan las comillas () que delimitan la cadena delalert. Debe ser: alert(
Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces}`);
- Hay que agregar el corchete de apertura en después del if:
if { numeroUsuario > numeroSecreto)
alert ("El número secreto es menor");
}
- alert innecesario dentro del else:
alert ("Lo siento, no acertaste el número")
Este alert se muestra siempre que el usuario no acierta, incluso si ya se le ha dado una pista ("El número secreto es menor" o "El número secreto es mayor"). Esto no es lógico. Este alert debe estar dentro del bloque else pero antes de dar la pista o bien puedes comentarlo utilizando al inicio // de la línea.
Aquí está una propuesta de código:
let numeroSecreto = 4;
let numeroUsuario = 0; // Inicializamos la variable
let intentos = 1;
let palabraVeces = "vez";
while (numeroUsuario != numeroSecreto) {
numeroUsuario = prompt("Me indicas un número entre 1 y 10 por favor:");
numeroUsuario = Number(numeroUsuario); // Convertimos a número
console.log(numeroUsuario);
if (numeroUsuario === numeroSecreto) { // Usamos === para comparación estricta
alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${palabraVeces}`);
} else {
alert("Lo siento, no acertaste el número"); // Mensaje de "no acertaste"
if (numeroUsuario > numeroSecreto) {
alert("El número secreto es menor");
} else {
alert("El número secreto es mayor");
}
intentos = intentos + 1;
palabraVeces = "veces";
}
}
¡Espero te sea de ayuda!