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

[Duda] Solución Alternativa

Hola, comparto esta solución alternativa. Como se puede observar, solo modifiqué el rango de números en la función Math.floor y luego en el pompt. Como adicional (ya que el rango de números es mayor), también se modifica la cantidad de máximos intentos). Sin embargo, no estoy del todo segura si esta solución estaría bien, ya que funciona para este caso pero quizás para otros casos no sea la más correcta y sea conveniente corregirla por la que se muestra en el video (y sea aplicable a más casos).

//Variables
let numeroSecreto = Math.floor(Math.random()*100)+1;
let numeroUsuario = 0;
let intentos = 1;
//let palabraVeces = 'vez';
let maximosIntentos = 6;

//el operador != significa "diferente de"
while (numeroUsuario != numeroSecreto) {
    let numeroUsuario = parseInt(prompt("Me indicas un número entre 1 y 100 por favor:"));

    console.log(typeof(numeroUsuario));
    if (numeroUsuario == numeroSecreto) {
        //Acertamos, fue verdadera la condición
        alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces' }`);
    } 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;
        //intentos += 1;
        intentos ++;

        //palabraVeces = 'veces';
        //intentos = intentos + 1; se puede colocar también debajo del primer console.log
        //La condición no se cumplió
        if (intentos > maximosIntentos) {
            alert(`Llegaste al número máximo de ${maximosIntentos} intentos`);
            break;
        }
        //alert('Lo siento, no acertaste el número');
    }

}
3 respuestas

excelente alternativa lo hice similar

Lo que hice es dejar abiertos al usuario el numeroMaximoPosible y el de intentos:

let numeroMaximoPosible = prompt('Ingrese el número máximo de rango a buscar: ');
let numeroSecreto = Math.floor(Math.random()*numeroMaximoPosible)+1;
// Math.random genera un número aleatorio con un máximo de 16 decimales entre 0 y menor que 10
let numeroUsuario = 0;
let intentos = 1;
//let palabraVeces = 'vez';
let maximosIntentos = prompt('Ingrese el número máximo de intentos: ');

console.log(numeroSecreto); // Muestra en la Consola del navegador

while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${numeroMaximoPosible}: `));

    console.log(typeof(numeroUsuario));
    if (numeroUsuario == numeroSecreto) {
        //Acertamos, fue verdadera la condición
        alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces' }`);
    } 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;
        //intentos += 1;
        intentos++;

        //palabraVeces = 'veces';
        if (intentos > maximosIntentos) {
            alert(`Llegaste al número máximo de ${maximosIntentos} intentos`);
            break;
        }
        //La condición no se cumplió
        //alert('Lo siento, no acertaste el número');
    }
}
let numeroSecreto = Math.floor(Math.random()*100)+1;
let numeroUsuario = 0;
let intentos = 1;
let maximosIntentos = 10;


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