Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

286
Vistas
Límite superior y límite inferior de números aleatorios

Estoy trabajando en un juego de adivinanzas de números aleatorios en JavaScript. Quiero que el usuario ingrese un límite bajo y un límite alto y que se genere el número aleatorio entre esos dos números. Intenté codificar lowLimit y highLimit como se muestra a continuación:

 let lowLimit = 5; let highLimit = 20; let random = Math.floor(Math.random() * highLimit); if (random < lowLimit) { random += lowLimit; } console.log(random);

y todo funciona bien.

Sin embargo, cuando permito que el usuario ingrese valores, el número aleatorio siempre se convierte en la suma de lowLimit y upperLimit. ¡No puedo entender esto!

Mi código final es este:

 let lowLimit = prompt('Input the lower limit:'); let highLimit = prompt('Input the upper limit:'); let random = Math.floor(Math.random() * highLimit); let tries = 0; if (random < lowLimit) { random += lowLimit; } console.log(random); let guess = prompt('Secret number generated. Enter guess:'); while (guess !== random) { if (guess === 'q') break; tries += 1; if (guess > random) { prompt('You guessed too high. Guess again...'); } else if (guess < random) { prompt('You guessed too low. Guess again...'); } else { alert('You guessed correctly! You made ' + tries + " guesses."); } }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Esta solución funciona. Cualquier sugerencia de refactorización es bienvenida.

 let lowLimit = Number(prompt('Input the lower limit:')); let highLimit = Number(prompt('Input the upper limit:')); while (!lowLimit || !highLimit) { lowLimit = Number(prompt('Input a valid lower limit:')); highLimit = Number(prompt('Input a valid upper limit:')); } lowLimit = Number(lowLimit); highLimit = Number(highLimit); let random = Math.floor(Math.random() * (highLimit - lowLimit) + lowLimit); let guesses = 0; console.log(random); guess = prompt('Enter guess:'); while (guess !== random) { if (guess === 'q') { alert('Ok. Quitting... You made ' + guesses + ' guesses') break; } guesses += 1; guess = Number(guess); if (guess > random) { guess = prompt('You guessed too high. Guess again...'); } else if (guess < random) { guess = prompt('You guessed too low. Guess again...'); } else alert('You guessed correctly! You made ' + guesses + " guesses."); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Algunos ajustes para mejorar el código y una corrección de errores (en el caso de que el usuario adivine correctamente en el primer intento, no recibirá comentarios)...

 // + is concise way to coerce an int const lowLimit = +prompt('Input the lower limit:'); const highLimit = +prompt('Input the upper limit:'); // note - we could add checks here for invalid or disordered values // this presumes we want random to be exclusive of highLimit. if not, we'll need to tweak const random = Math.floor(Math.random() * (highLimit - lowLimit) + lowLimit); // we'll vary the prompt during the game let promptMsg = 'Enter guess:', guesses = 0, guess; // bug fix and cleanup: do while, so we always play at least once // prompt in just one place, alter the prompt message to represent game state do { guess = prompt(promptMsg); guesses++; if (guess !== 'q') { guess = +guess; if (guess > random) { promptMsg = 'You guessed too high. Guess again...'; } else if (guess < random) { promptMsg = 'You guessed too low. Guess again...'; } } } while (guess !== 'q' && guess !== random); const endMsg = guess === 'q' ? 'Ok. Quitting' : 'You guessed correctly.' const guessesMsg = `You made ${guesses} ${guesses === 1 ? 'guess' : 'guesses'}`; alert(`${endMsg} ${guessesMsg}`)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podemos generar un número aleatorio usando Date.now()

let res = Date.now() % (highLimit - lowLimit + 1) + lowLimit.

Esto se debe a que nadie puede estimar el tiempo en milisegundos que se ejecuta el código.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda