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

adivinar un numero entre 1 e infinito completo y "perfecto" xd

pruebenlo y me dicen Que opinan? acepto sugerencias xd

//Variables
let numeroSecreto = 0;
let numeroUsuario = 0;
let intentos = 1;
//let palabraVeces = 'vez';
let maximosIntentos = 0;
let numeroMáximo =0;
//numeroMáximo= parseInt(prompt("Quieres adivinar un numero entre 1 y ..?"))

while (numeroMáximo<1 || isNaN(numeroMáximo)){
numeroMáximo= parseInt(prompt("Quieres adivinar un numero entre 1 y ..?"));
console.log(numeroMáximo);
console.log(typeof(numeroMáximo));

if (isNaN(numeroMáximo)|| maximosIntentos==0){
alert("Disculpe, debe ingresar un numero mayor que 0");
}

}
while (maximosIntentos==0 || isNaN(maximosIntentos)){
maximosIntentos = parseInt(prompt("En cuantos intentos?"));

if (isNaN(maximosIntentos) || maximosIntentos==0){
    alert ("Disculpe, debe ser un numero mayor que 0");
}
}

numeroSecreto = Math.floor(Math.random()*numeroMáximo)+1; 
if (numeroMáximo>0){
while (numeroUsuario != numeroSecreto) {
    numeroUsuario = parseInt(prompt("Me indicas un número entre 1 y " +numeroMáximo + " por favor:"));
    console.log(numeroUsuario);
    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');
    }
}
}
1 respuesta

¡Hola Adrian!

Parece que estás trabajando en un juego de adivinanzas en el que el usuario debe adivinar un número secreto. Ahora quieres hacer que el rango de números sea personalizable en lugar de estar limitado a 1 y 10.

Para lograr esto, necesitarás hacer algunos cambios en tu código. Aquí hay una posible solución:

  1. En lugar de tener un número máximo fijo de 10, debes permitir que el usuario ingrese el número máximo deseado. Puedes hacer esto utilizando la función prompt para pedir al usuario que ingrese el número máximo.

  2. Una vez que tengas el número máximo ingresado por el usuario, puedes generar un número secreto aleatorio utilizando la función Math.random() y luego multiplicarlo por el número máximo. Asegúrate de usar Math.floor() para redondear el resultado hacia abajo y agregar 1 para asegurarte de que el número secreto esté dentro del rango correcto.

Aquí hay un ejemplo de cómo podrías modificar tu código:

let numeroSecreto = 0;
let numeroUsuario = 0;
let intentos = 1;
let numeroMaximo = parseInt(prompt("¿Quieres adivinar un número entre 1 y ...?"));

numeroSecreto = Math.floor(Math.random() * numeroMaximo) + 1;

while (numeroUsuario != numeroSecreto) {
  numeroUsuario = parseInt(prompt("Ingresa un número entre 1 y " + numeroMaximo + ":"));

  if (numeroUsuario == numeroSecreto) {
    alert(`¡Acertaste! El número secreto era ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'intento' : 'intentos'}.`);
  } else {
    if (numeroUsuario > numeroSecreto) {
      alert('El número secreto es menor.');
    } else {
      alert('El número secreto es mayor.');
    }
    intentos++;

    if (intentos > maximosIntentos) {
      alert(`Llegaste al número máximo de ${maximosIntentos} intentos.`);
      break;
    }
  }
}

Recuerda que esta es solo una posible solución y que puede haber otras formas de lograr el mismo resultado. ¡Espero que esto te ayude a personalizar el rango de números en tu juego de adivinanzas!

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!