Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Estou com dúvida aqui.

Ele está pegando um número qualquer entre 0 e 1, multiplicando por 10 e arredondando certo? E como eu faria para ver qual número ele pegou e multiplicou? E também como eu faria para que ele pegasse somente números entre 0 e 10, como por exemplo 2,3 e multiplicasse por 10?

<meta charset="utf-8">

<script>

function pulaLinha() {

    document.write("<br><br>");

}


function mostra(frase) {

    document.write(frase);
    pulaLinha();

}


function sorteia(n) {

    return Math.round(Math.random() * n);


}


var numeroPensado = sorteia(10);
var chute = parseInt(prompt("Faça seu chute"));
console.log(numeroPensado);

if (chute == numeroPensado) {


    mostra("Você acertou! ");
} else {

if (chute > numeroPensado) {
    mostra(" Você errou. Seu chute é maior do que o número pensado! ");
}

else {

    mostra("Você errou. Seu chute é menor do que o número pensado. ");
}

}



</script>
4 respostas

Olá Vitor!

Para ver o numero você pode usar o console.log dentro da função:

function sorteia(n) {
    numero_sorteado = Math.round(Math.random() * n);
    console.log(numero_sorteado);
    return  numero_sorteado;
}

Seu script já está pegando numeros entre 0 e 10! :D

Espero ter ajudado! ^^

Olá, então não tem como ver qual número ele pegou e multiplicou por 10? Não estou falando do resultado final. E o Flávio tinha dito que o JS pega apenas números entre 0 e 1 a não ser que você especifique, por que no meu script está pegando entre 0 e 10?

Ahh sim! Entendi!

Então, você teria que separar em duas variaveis como da forma que fiz acima.

Você faria justamente com esse Math.random() que seria o numero que está sendo multiplicado por 10.

Dessa forma:

function sorteia(n) {
   numero_mult_dez = Math.random();
    numero_sorteado = Math.round( numero_mult_dez * n);
    console.log(numero_sorteado);
   console.log(numero_mult_dez);
    return  numero_sorteado;
}

Ele disse que pega de 0 e 1 e é uma verdade, acontece que tem um intervalo infinito entre 0 e 1 e ele gera um numero decimal bem grande.

Quando ele multiplica por 10 ele transforma esse numero em um inteiro como essse exemplo que fiz no terminal:

teste1 = Math.random();
> 0.7881200772910442
teste1 * 10
> 7.881200772910441

Repara nesse numero: 7.881200772910441

É ele que passamos agora pra função round:

Math.round(7.881200772910441);

Onde ele arredonda para 8;

E assim que ele vai gerando os numeros.

solução!

Olá Vitor!

Conseguiu sanar sua dúvida?

Caso sim, peço para que feche o tópico por favor!

Obrigado! ^^