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

Aula 6 - Atividade 13

Bom dia Professor. Pesquisando pela net, achei o método trunc() da classe Math que ao invés de arredondar o número como o round() faz, ele pega o número que está antes da casa decimal. Fiz uma modificação no meu jogo e ficou assim:

<meta charset="UTF-8">

<script>

    function mostra(mensagem) {
        document.write(mensagem);
        document.write("<br>");
    }

    function sorteia() {
        var numeroEscolhidoComputador = parseInt(prompt("Escolha um número máximo para eu pensar. Eu pensarei em um número entre 0 e o número que você escolher!"));
        return Math.trunc((Math.random() * (numeroEscolhidoComputador + 1)));
    }

    var numeroPensadoComputador = sorteia();

    var numeroEscolhidoUsuario = parseInt(prompt("Já pensei no meu número. Agora escolha o seu e tente acertar!"));

    if (numeroEscolhidoUsuario == numeroPensadoComputador) {
        mostra("Parabéns, você acertou!");
    } else {
        mostra("Você errou. O número que eu escolhi foi " + numeroPensadoComputador);
        if (numeroEscolhidoUsuario < numeroPensadoComputador) {
            mostra("Você escolheu " + numeroEscolhidoUsuario + ", um número menor.");
        } else {
            mostra("Você escolheu " + numeroEscolhidoUsuario + ", um número maior.");
          }
      }    

</script>

Tive o mesmo resultado, está correto também dessa forma?

1 resposta
solução!

Raphael, nesse caso esta certo, pois você sempre quer arredondar para baixo.

Porém, pode haver diferenças. O método round levam em conta as outras casas decimais do número. Exemplo:

var n = 42.9
var t = Math.trunc(n);
var r = Math.round(n);
// o valor de t é 42
// o valor de r é 43

Isso acontece pois r é o arredondamento de n e, como podemos ver, n está mais próximo de 43 do que de 42.

Espero ter ajudado.

Bons estudos!