3
respostas

Consolidando conhecimento, sugestão de melhoria.

Consegui fazer o código rodar com o que eu tinha em mente, porém ele só retorna as respostas após as tentativas, há alguma forma de ser impresso os resultados a medida que eu preencho meu chute?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function sorteia(n){
        return Math.round(Math.random()*n);
    }


    var numeroPensado = sorteia(parseInt(prompt("Pensarei em um número aleatório de 0 a ...")));
    console.log(numeroPensado);


    for(quantidadeDeChutes=1;quantidadeDeChutes<=3;quantidadeDeChutes++){
        var chute = parseInt(prompt("Digite seu chute!"));
        if(chute == numeroPensado){
        mostra("Você acertou!");
        break;
        }else{
            if(chute > numeroPensado){
            mostra("Seu chute foi maior que o meu número");
            }else{
            mostra("Seu número foi menor que o meu número");
            }
        }
    }


</script>
3 respostas

Pelo o que testei aqui ele está imprimindo sim na página suas respostas.

"Seu chute foi maior que o meu número"
"Seu número foi menor que o meu número"

Caso queria incrementar e inserir o valor do chute na impressão da resposta segue o código:

<meta charset="UTF-8">

<script>
function pulaLinha() {

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

    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function sorteia(n){
        return Math.round(Math.random()*n);
    }


    var numeroPensado = sorteia(parseInt(prompt("Pensarei em um número aleatório de 0 a ...")));
    console.log(numeroPensado);


    for(quantidadeDeChutes=1;quantidadeDeChutes<=3;quantidadeDeChutes++){
        var chute = parseInt(prompt("Digite seu chute!"));
        if(chute == numeroPensado){
        mostra("Você acertou!");
        break;
        }else{
            if(chute > numeroPensado){
            mostra(`Seu chute ${chute} foi maior que o meu número`);
            }else{
            mostra(`Seu número ${chute} foi menor que o meu número`);
            }
        }
    }
</script>

Assim você terá a seguinte resposta:

"Seu número 2 foi menor que o meu número"
"Seu chute 8 foi maior que o meu número"

Não seria exatamente dessa forma que sugeri, pois no código ele só imprime após a conclusão do looping, queria saber se tem como ele ir imprimindo a medida que eu vou preenchendo.

Tente trocar o "document.write" por "alert", na linha 14.

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    }

    function mostra(frase) {

        alert(frase);//tente trocar document.write por alert
        pulaLinha();
    }

    function sorteia(n) {
        return Math.round(Math.random() * n);
    }


    var numeroPensado = sorteia(parseInt(prompt("Pensarei em um número aleatório de 0 a ...")));
    console.log(numeroPensado);


    for (quantidadeDeChutes = 1; quantidadeDeChutes <= 3; quantidadeDeChutes++) {
        var chute = parseInt(prompt("Digite seu chute!"));
        if (chute == numeroPensado) {
            mostra("Você acertou!");
            break;
        } else {
            if (chute > numeroPensado) {
                mostra("Seu chute foi maior que o meu número");
            } else {
                mostra("Seu número foi menor que o meu número");
            }
        }
    }


</script>