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)
3
respuestas

[Duda] necesito ayuda, no se cual es el error

//VARIABLES let numeroSecreto = 4; let numeroUsuario = 0; let intentos = 1; let palabrasVeces = 'vez';

while (numeroUsuario!=numeroSecreto) {

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

console.log(numeroUsuario);

/* 
Este código realiza
la comparación
*/
if (numeroUsuario == numeroSecreto) {
    //Acertamos, fue verdadera la condición
    alert(`Acertaste, el numero es: ${numeroSecreto}. Lo hiciste en: ${intentos} ${palabrasVeces}`)
   
} else {
    if (numeroUsuario > numeroSecreto){
        alert('El número secreto es menor');
    } else {
        alert('El número secreto es mayor');
    }
    //incrementamos el contador mientras la persona no acierta
    intentos = intentos + 1;
    palabrasVeces ='veces';
    //La condición no se cumplió
   alert('Lo siemto no acertaste el numero')
}

}

3 respuestas

Te falta definir el numeroSecreto con el let así como la variable palabrasVeces al inicio del código. Te comparto el mío:

// variables
let numeroSecreto = 8;
let numeroUsuario = 0;
let intentos = 1;
let veces = 'vez';
while(numeroUsuario != numeroSecreto) {
    let numeroUsuario = prompt("Adivina el número que estoy pensando del 1-10");
    //muestra el log en la consola del navegador la variable guardada
    console.log(numeroUsuario);
    //compara el numero ingresado por el usuario vs el puesto en el código, usando == pues es el comparativo
    if(numeroUsuario == numeroSecreto) {
           alert(`Acertaste el número que es: ${numeroSecreto}. Lo hiciste en ${intentos} ${veces}`);
           // alert('¡Acertaste el número que es: ' + numeroSecreto + "! Lo hiciste"); puede ser usado, sin necesidad de separar dentro del alert
        }
    else { // Aquí todas las condiciones cuando falle en adivinar el usuario
            if(numeroUsuario > numeroSecreto) {
                    alert("El número que diste es mayor al que estoy pensando, intenta uno nuevo")
            }
            else {
                    alert("El número que diste es menor al que estoy pensando, intenta uno nuevo")
            }
        intentos = intentos + 1;
        veces = 'veces';
    }
}

Dentro del while ya no tienes que poner el "let" porque ya lo pusiste en la parte de arriba, borra el "let" de la linea "let numeroUsuario = prompt("Me indicas un número entre 1 y 10 por favor");" y creo que es todo. Edit: ah, y ese "Lo siemto" (con m) me mató.

Para la próxima, además de escribir el código intenta describir que es lo que esta haciendo el código que no debería hacer.

solución!

La funciona alert('Lo siemto no acertaste el numero')

Deshabilitado colocando adelante // y despues problalo.

Te paso el codigo original.

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

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

    console.log(numeroUsuario);
    if (numeroUsuario == numeroSecreto) {
        //Acertamos, fue verdadera la condición
        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');
        }
        //Incrementamos el contador cuando no acierta
        intentos = intentos + 1;
        palabraVeces = 'veces';
        //La condición no se cumplió
        //alert('Lo siento, no acertaste el número');
    }
}

Si te ha resultado, no olvides cerrarlo como "SOLUCIONADO!".

Te mando un saludo y exito en el programa.