Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

propuesta para mejorar el juego pero no la termine alguien que me ayude

esta propuesta es para que el usuario dentro del juego defina el rango maximo al cual quiere llegar por ejemplo entre uno y limite maximo que ingresaria el usuario pero no logre llegar al codigo correcto

//Variables let limiteMaximo = parseInt(prompt("Indicame cual es el limite de numero en el que vas a adivinar, entre 1 y ...(tu numero)")); let numeroSecreto = Math.floor(Math.random()*limiteMaximo) + 1; let numeroUsuario = 0; let intentos = 1; //let palabraVeces = 'vez'; // podemos comentar esta parte y ddentro del template string poner codigo let intentosMaximo = 3; console.log(numeroSecreto);

while (numeroUsuario != numeroSecreto) {

numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${limiteMaximo} 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"}`); // en este apartado  Lo hiciste en ${intentos} ${palabraVeces}` 
                                                                                                    // podemos poner ${intentos ==1 ? "vez" : "veces"} que el ? es el if y : es el else
                                                                                                    // se llaman operadores ternarios el ? dice que si es verdadero dar vez y si es falso dar 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;
    // se puede poner intentos = intentos ++; esta es mas utilizada ahorita para simplificar codigo y hacer contadores
    //otra forma es intentos +=1; que nos dice que a lo que tiene le suma 1 sirven para reducir el codigo
    //palabraVeces = 'veces'; se pone para despues del primer bucle empieza con veces
    if (intentos > intentosMaximo){
        alert(`Llegaste al numero maximo de ${intentosMaximo} intentos`);
        break;
    } 
        
    
}

}

1 respuesta

Hola Luis, tendrías que usar un prompt en la variable limiteMaximo, en el ejercicio se llama numeroMaximoPosible.

let numeroMaximoPosible = parseInt(prompt("Un número entre 1 y cuanto será el límite"));
let numeroSecreto = Math.floor(Math.random()*numeroMaximoPosible)+1;
let numeroUsuario = 0;
let intentos = 1;

//Esto es para dar una cantidad de intentos proporcional, escogí 30% al azar
let maximosIntentos = Math.floor(numeroMaximoPosible*0.3);
console.log("cuentas con "+maximosIntentos+ " intentos");
console.log(numeroSecreto);

while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt(`Me indicas un número entre 1 y ${numeroMaximoPosible}  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';
        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');
    }
}