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

[Sugestão] Resolvendo a função gerarNumeroAleatorio

Fiquei um pouco decepcionado nessa parte do curso, porque é falado pelo instrutor que você pode trocar o menorValor, mas nas linhas do código nunca é trabalhado isso, apenas o maiorValor faz parte da função principal. Inclusive num dos testes usando console.log é exibido um valor fora do intervalo desejado, e isso pode ser visto claramente no vídeo.

Os colegas no outro tópico fizeram ótimas sugestões de código, mas não funciona em 100% dos casos, porque o Math.random() pode dar um valor exatamente igual a 0. Isso faria as funções deles retornarem maiorValor+1. (Math.random()>=0 e Math.random()<1)

Então, eu fui pela abordagem contrária:

function gerarNumeroAleatorio() {
    return parseInt(Math.random() * ( (maiorValor+1) - menorValor ) + menorValor)
}

Escolhi como teste os valores 20 e 50.

Se Math.random() for 0, sobra apenas menorValor, que é 20. Se Math.random() for 0.01 teríamos 0.31+20 = 20.31, que eliminando os decimais fica 20 novamente. Se Math.random() for 0.9999 teríamos 30.9969 + 20 = 50.9969, convertido para 50.

Apenas se fosse possível Math.random() dar 1, aí teríamos 31+20 = 51.Por esse motivo que se somou 1 ao maiorValor, senão o resultado máximo da conta seria uma aproximação infinita ao 50 (49,99999999...) e nós queremos que o maiorValor seja incluído no sorteio, e não excluído. Pra isso, excluímos o 51.

Espero ter contribuído. :D

1 resposta
solução!

Oi Kevin, tudo bem?

Muito obrigada por compartilhar com a gente a sua opinião e sugestão, sentimos muito que ficou decepcionado com essa parte.

Incrível que você deixou tudo muito bem explicado.

Com certeza ela vai ajudar outras pessoas, parabéns pela atitude! Pessoas como você fazem a diferença no fórum.

Um abraço e bons estudos.