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

[Proyecto] realize dos cambios.

//variables

let numeroSecreto = Math.floor(Math.random()*1000)+1; let numeroUsuario = 0; let intentos = 1; //let palabraVeces = "vez"; let maximosIntentos = 3;

while (numeroUsuario != numeroSecreto) { let numeroUsuario = parseInt(prompt("Me indicas un numero entre 1 y 1000 por favor"));

console.log(typeof(numeroUsuario));
if (numeroUsuario == numeroSecreto) {
    //aacertamos fue verdadera la condicion
    alert(`Acertaste, el numero es: ${numeroUsuario}. lo hiciste en ${intentos} ${intentos == 1 ? "vez" : "veces" }`);
    //console.log("Resultado de la comparacion ", numeroUsuario == numeroSecreto);
} else {
    if (numeroUsuario > numeroSecreto) {
        alert("El numero secreto es menor");
    } else {
        alert("El numero secreto es mayor");
    }
    //Incrementamos el contador cuando no acierta
    //intentos = intentos + 1;
    //intentos += 1;
    intentos++;

    //palabraVeces = "veces";
    if(intentos > maximosIntentos) {
        alert(`llegaste al numero maximo de ${maximosIntentos} intentos`)
        break;
    }
    //la condicion no se cumplio
// alert("Lo siento, no acertaste el numero.");
   // console.log("El numero secreto era " + numeroSecreto);
}

}

Me funciono pero queda muy complejo saber el numero, ya que son rangos muy amplios, espero la solución para verificar si hay una manera de especificar que tan lejos estoy den numero correcto, Saludos desde Colombia.

1 respuesta

Buena idea generar una variable la cual modifique el numero maximo a emplear. Habia colocado estas mejoras:

  1. Solicitar al usuario un numero aleatorio multiplo de 5 que sea entre 5 y 100.
  2. Al inicio da la bienvenida e indica el numero de intentos que se tiene
  3. Se adiciono una condicion para evitar que el usuario coloque una letra, un numero que no sea multiplo de cinco, un numero que no sea mayor o igual a 5 o menor o igual a 100.

Ahora estoy agregando tambien la mejora indicada en clase .

let numeroMinimoPosible = 5;
let numeroMaximoPosible = 100;

const cantidadMultiplos = (numeroMaximoPosible - numeroMinimoPosible) / 5 + 1;

let numeroSecreto = Math.floor(Math.random() * cantidadMultiplos) * 5 + numeroMinimoPosible; 
let intentos = 1; 
const maximosIntentos = 3;
let numeroUsuario = 0;

console.log(`Numero secreto (para pruebas): ${numeroSecreto}`);

alert(`¡Bienvenido al juego del numero secreto! Tienes 3 intentos para adivinar un numero multiplo de 5 entre ${numeroMinimoPosible} y ${numeroMaximoPosible}.`);

while (intentos <=  maximosIntentos){
  let inputUsuario = prompt(`Intento ${intentos} de ${maximosIntentos}. Ingresa un numero multiplo de 5 entre ${numeroMinimoPosible} y ${numeroMaximoPosible}:`);
  numeroUsuario = parseInt(inputUsuario);
  
  // Validar si el input es un numero valido entre 5 y 100 y multiplo de 5
  if (isNaN(numeroUsuario) || numeroUsuario < 5 || numeroUsuario > 100 || numeroUsuario % 5 != 0) {
    alert(`Por favor, ingresa un numero valido multiplo de 5 entre ${numeroMinimoPosible} y ${numeroMaximoPosible}.`);
    continue; // Volver a pedir el numero sin contar como intento
  }
  
  if (numeroUsuario == numeroSecreto){ 
        alert (`Acertaste, el numero es: ${numeroUsuario}. Lo lograste en ${intentos} ${intentos == 1 ? 'intento' : 'intentos'}`);
      break;

  } else {
      alert(`El numero secreto es ${numeroUsuario > numeroSecreto ? "menor" : "mayor"}.`)
      
      intentos++;

  }

  if (intentos > maximosIntentos){
    alert(`¡Agotaste tus ${maximosIntentos} intentos! El número secreto es: ${numeroSecreto}.`);
    break;
    }
  }