Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Entender a função : Math.round( Math.random() * x );

Tive a ideia de criar "Dados de RPG" usando a função Math.random(), entretanto, por mais que tenha funcionado, eu gostaria de entender melhor a função. exemplo: quando multiplicado por 6 (D6) Gera números de 0 a 6, para (D20, D100) a mesma coisa, gostaria de entender o pq dessa multiplicação trazer tais resultados e fazer a limitação de valores ( de X a Y).

1 resposta
solução!

Olá Vinicius, tudo bem?

Internamente a função Math.random() vai te retornar sempre um número aleatório entre 0 e 1. Será sempre um número tal como por exemplo: 0.65099... 0.56540... 0.10532...

Tem um detalhe, entre 0 e 1, quer dizer entre 0 e 0.9999... Faça alguns testes no teu browser utilizando esta função em Javascript.

Dai você vai usar a multiplicação para transformar este número num intervalo desejado por você.

Se você multiplicar por exemplo o número aleatório por 6, o resultado máximo que poderá obter será 5. Faça as contas e considere pegar somente a parte inteira do número. Por exemplo,

0,1000... * 6 = 0,6, resultado = 0 0,2000... * 6 = 1.2, resultado = 1 0,3000... * 6 = 1.8, resultado = 1 0,4000... * 6 = 2.4, resultado = 2 ... 0,9999... * 6 = 5.9, resultado = 5

O exercicio sugere utilizar a função Round, que vai arredondar o valor. E neste caso, com arredondamento poderá retornar resultados entre 0 e 6.

Uma outra forma de resolver este problema, e ainda limitando o teu dado, entre 1 e 6, seria usar o esquema abaixo:

Math.random() * max + min;

Onde número min = 1 E número max = 6 Ficaria desta forma:

Math.random() * 6  + 1;

e para te retornar somente a parte inteira do número:

Math.trunc(Math.random() * 6 + 1);

Desta forma o teu número de retorno será sempre entre 1 e 6.

Faça testes no teu browser e isole este código numa função. Se o texto acima te ajudou, por favor marcar o tópico como solucionado, se não postar suas dúvidas novamente.

Um abraço e bons estudos.