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

[Proyecto] Solución al desafío

Agregué la funcionalidad de seleccionar el rango y además la funcionalidad de ir diciendo cuantos intentos lleva. Admito que para corregir la lógica del número randómico me fue difícil y me apoyé en chatgpt, donde ví que había que multiplicar el número aleatorio por elrango en vez de por 10.

//Variables //let numeroMaximoPosible = 100; let numeroSecreto let numeroUsuario = 0; let intentos = 1; //let palabraVeces = 'vez'; let maximosIntentos; let minimo, maximo

alert('Elige el rango de números para adivinar') minimo = parseInt(prompt("Adivinar número desde: ")) maximo = parseInt(prompt("Adivinar número hasta: ")) maximosIntentos = parseInt(prompt("¿En cuántos intentos? ")) numeroSecreto = Math.floor(Math.random()*(maximo - minimo+1)); //elige aleatoriamente un número entre 0 y 1, luego lo multiplica por 10, lo redondea por debajo y le suma 1.

while (numeroUsuario != numeroSecreto) { numeroUsuario = parseInt(prompt(Me indicas un número entre ${minimo} y ${maximo} por favor:)); //recoge el número a adivinar por el usuario y lo convierte a entero

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. Llevas ${intentos} de ${maximosIntentos} intentos`);
    } else {
        alert(`El número secreto es MAYOR. Llevas ${intentos} de ${maximosIntentos} intentos`);
    }
    //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. El número era ${numeroSecreto}`);
        break;
    }
    //La condición no se cumplió
    //alert('Lo siento, no acertaste el número');
}

}

1 respuesta

Hola Ronny me permito compartite mi solución para que las anailicemos juntos en mi caso defini las variables para poder definir el rango y el numero de intentos. si tienes tiempo de darme feeback sobre algun comentario dentro del codigo que pudiera haber omitido me seria de mucha ayuda.

Ahorita esta configura para un rango de hasta 100 y dar 10 intentos.

//Variables
let numeroUsuario;
let rangoMaximo=100; // cambia esta variable para incrementar el rango de nuemeros aleatorios
let numeroSecreto = Math.floor(Math.random()*rangoMaximo)+1;
let contadorIntentos=0;
let intentosPermitodos=10;// cambia este numero para definir el número de intentos

/*
Este código realiza
la comparación
*/

console.log(numeroSecreto);// Nos muestra en consola el numero que buscamos.

while (numeroUsuario != numeroSecreto) {//terminamos cuando sea igual

    numeroUsuario = parseInt(prompt("Me indicas un número entre 1 y "+ rangoMaximo +" por favor:"));
    contadorIntentos++;
    console.log(numeroUsuario);
    if(numeroUsuario == numeroSecreto){
        alert(`Acertaste, el número es: ${numeroUsuario}`);
        break;
    }
    else if(numeroUsuario > numeroSecreto){
        alert("un poco mas abajo");
    }
    else alert("un poco mas arriba");
   
 
 if(contadorIntentos>(intentosPermitodos-1)){
    alert ("se acabaron los intentos");
    break;
 }
}
if(numeroUsuario == numeroSecreto){
if(contadorIntentos==1){
alert("solo te tomo "+contadorIntentos+" intento");
}
else{alert("solo te tomo "+contadorIntentos+" intentos");}
}