Por que Temos que Colocar Valores, como: var numeroSorteado = sorteia(10); se o computador é que irá escolher um número aleatório?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por que Temos que Colocar Valores, como: var numeroSorteado = sorteia(10); se o computador é que irá escolher um número aleatório?
Oi Cláudia!
Pelo que entendi, é porque o programa escolhe um número entre zero e o número que vai ser processado na função "sorteia". Tudo bem que o programa já fazia isso antes, só multiplicando o Math.random pelo número desejado, mas creio que foi passado o exercício para, além de treinarmos construir funções, também pensarmos sobre deixar o programa mais enxuto, menos poluído e mais fácil de alterar.
Essa foi minha duvida também, fiquei analisando a função e não entendi pra que colocar o numero 10 se o numero vai ser processado aleatório pelo próprio programa.
Se eu coloco por exemplo o numero 5 ele mostra "Você errou! Seu chute é maior que o número pensado!"
Isso se deve por causa da função que criamos, veremos essa parte do código:
<script>
function sorteia(n) { // Criamos uma função chamada sorteia que possui um parâmetro (n)
/* Esse " n " é um número qualquer, por enquanto não tem valor algum, mas olhando a instrução
abaixo, que será executada quando chamar a função, sabemos que esse " n " está multiplicando uma outra função
chamada Math.random() e que este Math.random() está dentro de outra função nomeada Math.round(). Então aqui
chamamos duas funções: */
return Math.round(Math.random() * n);
}
var numeroPensado = sorteia(10); // Aqui estamos chamando a função que criamos com um argumento.
/* E estamos atribuindo o valor que sorteia(10) retorna à variável "numeroPensado", o que sorteia(10) retorna?
justamente o resultado da operação matemática que está depois do 'return' -> return Math.round(Math.random() * 10);
Mas agora perceba que o parâmetro ' n ' está sendo substituído pelo nosso agurmento que é 10, agora ' n ', possui um valor!
</script>Obs:. No JavaScript há algumas funções já pré definidas, como na biblioteca Math há várias funções/métodos que estamos chamando dela, como random() e round(), e todas elas tabém utilizam parâmetros para executar o cálculo delas.
Agora que entendemos o código, basta entender a operação que está sendo realizada:
Então ao multiplicarmos os números acima por 10 (que é foi o nosso argumento em sorteia(10)), temos o seguinte resultado: 4,8498984 - 6,545155656 - 4,984987984 - 8,984984948. E assim temos as casas de unidade que queremos que é de 0 até 9.
Então chamamos Math.round() para arredondadar para o inteiro mais proximo. Aí fica: 5 - 7 - 5 - 9, como round() arredonda para o mais próximo, se o número aleatório ser 0.9885226, teremos o 10!
Concluindo, se queremos um número aleatório de 0 até 100 unidades, basta mudarmos o nosso argumento de 10 para 100:
<script>
// Então a operação que será excecutada no sorteia(100) será assim:
// Math.round(Math.random() * 100);
function sorteia(n) {
return Math.round(Math.random() * n);
}
var numeroPensado = sorteia(100);
</script>
Muitissimo obrigada!!!
Agora eu entendi!!! :)