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

Propuesta para mejorar el juego.

Se puede mejorar el juego permitiendo que el jugador elija el rango de números a jugar, es decir 1-100 o 1-1000, etc., el jugador agregaría ese rango mediante un prompt y no manualmente como lo hacen en el ejemplo.

2 respuestas

Efectivamente si se puede yo trate de hacerlo pero no llegue a la solucion, te comparto el codigo no se por que no funciona al 100 pero es un avance ojala alguien nos pueda apoyar //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;
    } 
        
    
}

}

Hola estuve viendo tu código pero no veo ningún error y funciona perfectamente, de pronto puede ser que haya comentado esta parte de código y por eso no le funciona ya que no esta definiendo el número de intentos máximos.

// podemos comentar esta parte y ddentro del template string poner codigo let intentosMaximo = 3; console.log(numeroSecreto);

yo me base del suto y me qedó de esta manera ``

//Variables
let numeroMaximo = prompt(`Ingresa el número maximo del rango en el que vas a adivinar, entre 1 y ...(tu numero)`);
let numSecret = Math.floor(Math.random() * numeroMaximo) + 1;
let numUser = 0;
let intentos = 1;
let maximoIntentos = 3;

//Proceso
while (numUser != numSecret) {
    numUser = parseInt(prompt(`Ingrese un número por favor del 1 al ${numeroMaximo}: `));

    if (numUser == numSecret) {
        alert(`Acertaste, el numero ${numUser} en ${intentos}  ${intentos == 1 ? 'vez' : 'veces'}`);
    } else
        if (numUser > numSecret) {
            alert('El número secreto es menor');
        } else {
            alert('El número secreto es mayor');
        }
    //Incrementamos el contador cuando no acierta
    intentos++;
    //palaVeces = 'Veces';
    if (intentos > maximoIntentos) {
        alert(`Llegaste al número máximo de ${maximoIntentos}  intenos`);
        break;
    }
}