Estuve investigando y segun la pagina Mnd web docs y videos de youtube, cuando se utiliza Math.round en el caso de un numero aleatorio, ese numero aleatorio puede salir del intervalo, es decir si el maximo es 10, te puede dar un valor aleatorio 11.
function sorteo(n) {
return Math.round(Math.random()*n);
}
var numeroPensado = sorteo(10);
Entonces, la recomendacion de la pagina Mnd web docs es usar lo siguiente:
Obtener un número entero aleatorio entre dos valores (incluyendo ambos)
La función getRandomInt() descrita anteriormente incluye el valor mínimo, pero excluye al máximo. ¿Y si necesitamos que el resultado incluya tanto al mínimo como al máximo? La siguiente función getRandomIntInclusive() lo consigue. https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Math/random#obtener_un_n%C3%BAmero_entero_aleatorio_entre_dos_valores_incluyendo_ambos
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1) + min);
}
// Ahora, tanto el valor mínimo como el máximo están incluidos en el resultado.
Aplicando esto y eliminando el minimo porque es 0, mi codigo quedo asi:
function sorteo(n) {
return Math.floor(Math.random() * (n + 1));
}
var n = parseInt(prompt("Ingrese un numero"));
var numeroPensado = sorteo(n);
var numeroLanzado = parseInt(prompt("Ingrese un numero entre 0-" + n));
¿que opinan?