2
respostas

dúvida no porque o código não resolve o problema!

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<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("Já pensei. Qual você acha que é?"));

    if(chute == numeroPensado) {

        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {

        if(chute > numeroPensado) {

            mostra("Você errou! Seu chute é maior que o número pensado!");

        } else {

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

    }
</script>

esse código acima é a resposta do instrutor concordo com ela e tive , na minha ,a mesma linha de raciocínio. Mas ao testar o programa ele não calcula os números de 0 a 'n' como o solicitado pelo desafio(pelo visto sempre sorteia de 0 a 100, independente do que colocamos como parâmetro para a execução da função mostra) .Não consigo identificar o porque isso ocorre, se alguém puder analisar, agradeço.

2 respostas

Isso acontece porque a funcao Math.Random() so retorna numeros de 0 ate 1.

mas o fato de multiplicarmos por 10 ( na função sorteia) e usarmos a função Math.round não traria o retorno de números entre 0 a 10? no lugar de 0 a 100