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

Consulta del vídeo "Tips o Mayor o Menor"

Después de ver este vídeo, estuve practicando un poco, para darle más oportunidades al jugador, y lo edité para que el jugador tenga tres oportunidades de adivinar el número.. Pero pasa que si la persona acierta a la primera o la segunda vez, la página sigue mostrando las ventanas de las opciones restantes. ¿Cómo se puede hacer para que el juego se detenga al momento de acertar? Aclaro que no he visto el resto de los vídeos todavía. Dejo mi código de práctica.

let numeroSecreto = 2;
let numeroUsuario = prompt ("Me indicas un número entre 1 y 10:");

console.log(numeroUsuario);
/*
Barra asterisco para abrir varias líneas de comentarios
Asterisco barra para cerrar las líneas de comentarios
*/
if (numeroUsuario == numeroSecreto) {
    alert (`¡Enhorabuena! Acertaste, el número es: ${numeroSecreto}`);
} else {
    if(numeroUsuario > numeroSecreto){
        alert('El número es menor');
    } else {
        alert('El número es mayor');
    }
    //alert ('No acertaste, el número era ' + numeroSecreto + ', y elegiste ' + numeroUsuario );
}

//console.log(numeroUsuario == numeroSecreto);

let segundoIntento = prompt ('Vuelve a intentarlo:');
if (segundoIntento == numeroSecreto) {
    alert ('¡Acertaste, el número es ' + numeroSecreto + '!');
} else {
    if(segundoIntento > numeroSecreto){
        alert('El número es menor');
    } else {
        alert('El número es mayor');
    }
}

let últimoIntento =prompt ('Última oportunidad:');
if(últimoIntento == numeroSecreto) {
    alert('¡Ya era hora! Acertaste, el número secreto era ' + numeroSecreto);
} else {
    alert('Lo siento, fallaste. El número secreto era ' + numeroSecreto);
}
2 respuestas
solución!

Hola, Pia

De acuerdo a lo que mencionas, en este caso es mejor usar el bucle while, ya que si bien tus tres condicionales están correctos y son funcionales, no se conectan o relacionan con los otros. Por ello, al usuario acertar a la primera o segunda vez, el programa igual va a validar el resto de los condicionales.

Como solución, sería que el bucle while siguiera evaluando hasta que el numeroUsuario fuese igual al numeroSecreto.

Espero te sirva la respuesta!

Hola Pia, otra solución es declarar e inicializar una variable con cero y asiganarle el valor 1 si se acertó en el primer intento. Despues se pregunta (if) antes de ingresar a la segunda estructura (segundo intento) si se adivino, de no ser asi se ingresa, si se acierta el valor se le asigna el valor 1 a la variable. Por último, la tercer estructura debe preguntar si ya ha sido adivinado el número, de continuar la variable con el valor 0 significa que no y se realiza el ultimo intento.

let seAdivino=0; let numeroSecreto = 2; let numeroUsuario = prompt ("Me indicas un número entre 1 y 10:");

console.log(numeroUsuario); /* Barra asterisco para abrir varias líneas de comentarios Asterisco barra para cerrar las líneas de comentarios */ if (numeroUsuario == numeroSecreto) { alert (¡Enhorabuena! Acertaste, el número es: ${numeroSecreto}); seAdivino=1; } else { if(numeroUsuario > numeroSecreto){ alert('El número es menor'); } else { alert('El número es mayor'); } //alert ('No acertaste, el número era ' + numeroSecreto + ', y elegiste ' + numeroUsuario ); }

//console.log(numeroUsuario == numeroSecreto);

if (seAdivino==0){ let segundoIntento = prompt ('Vuelve a intentarlo:'); if (segundoIntento == numeroSecreto) { alert ('¡Acertaste, el número es ' + numeroSecreto + '!'); seAdivino=1; } else { if(segundoIntento > numeroSecreto){ alert('El número es menor'); } else { alert('El número es mayor'); } } }

if (seAdivino==0){ let últimoIntento =prompt ('Última oportunidad:'); if(últimoIntento == numeroSecreto) { alert('¡Ya era hora! Acertaste, el número secreto era ' + numeroSecreto); } else { alert('Lo siento, fallaste. El número secreto era ' + numeroSecreto); } }