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

[Dúvida] Consolidando conhecimento aula 07

Eis o meu código, entretanto tenho um problema com ele que, toda vez que eu chuto baixo, o alerta avisa que esta baixo, porém quando o chute esta alto ele não faz o mesmo. O que eu não estou conseguindo ver?

<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(100);
    tentativas = 1;

    while(tentativas <= 3) {

        var chute = parseInt(prompt("Vamos jogar um jogo? Pense em um número de 0 a 100"));

        if(chute == numeroPensado) {

            mostra("Uau! Você acertou !! ");
            break;

        } else {

            if(chute > numeroPensado) {

            mostra("Você errou! Chutou alto ! Tente outra vez!");

            } if(chute < numeroPensado) {

                alert("Você errou! Chutou baixo ! Tente outra vez!");
            }
            mostra("você errou ! O número pensado era: " + numeroPensado);
        }
        tentativas++;
    }

    mostra("FIM !");
</script>
4 respostas
solução!

Olá, Leonardo! Tudo bem com você?

Para corrigir o erro, é necessário que você faça uma pequena alteração no seu código. Em vez de usar "mostra" no seu if, você deve substituir por "alert". O if é uma estrutura condicional que verifica uma condição e executa um bloco de código se a condição for verdadeira. Nesse caso, você quer que um alerta seja mostrado quando o chute do usuário for maior que o número que foi pensado.

Aqui está o código corrigido:

if (chute > numeroPensado) {
    alert("Você errou! Chutou alto! Tente outra vez!");
}

Agora, quando o usuário digitar um valor maior que o número pensado, o alerta será exibido, informando que o chute foi alto e incentivando-o a tentar novamente.

Espero que isso ajude! Se tiver mais alguma dúvida ou precisar de ajuda extra, fique à vontade para perguntar. Estou aqui para ajudar!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Putz ! Se fosse um bicho tinha me mordido kkkkkkkkkkkkk Vlw Maria, muito obrigado, ajudou muito !

Agora, não querendo abusar muito. Mas tem uma outra coisa que ta me incomodando um pouco tbm nesse código, mas é mais por estética do que qualquer coisa. Quando eu gasto as 3 tentativas e erro. Ele imprime 3 vezes "você errou ! O número pensado era: (aqui entra o numero pensado)". Tem um jeito de fazer imprimir apenas uma vez, mantendo as tentativas e tudo mais, como antes?

Oii Leonardo, tudo bem?

Acontece, as vezes algumas coisas passam despercebidas mesmo!

Muito legal que você esteja querendo aprimorar cada vez mais seu projeto, parabéns pela dedicação!

Para fazer a mensagem de erro aparecer apenas uma vez, você pode armazenar a mensagem de erro em uma variável e exibi-la somente no final do loop, após todas as tentativas serem feitas. Dessa forma, seu código completo ficará assim:

<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(100);
    var mensagemErro = ""; // Variável para armazenar a mensagem de erro
    tentativas = 1;

    while(tentativas <= 3) {
        var chute = parseInt(prompt("Vamos jogar um jogo? Pense em um número de 0 a 100"));

        if(chute == numeroPensado) {
            mostra("Uau! Você acertou !! ");
            break;
        } else {
            if(chute > numeroPensado) {
                alert("Você errou! Chutou alto ! Tente outra vez!");
            } else {
                alert("Você errou! Chutou baixo ! Tente outra vez!");
            }
            // Armazena a mensagem de erro na variável, mas não exibe aqui
            mensagemErro = "Você errou! O número pensado era: " + numeroPensado;
        }
        tentativas++;
    }

    // Exibe a mensagem de erro apenas uma vez, no final do loop
    if (mensagemErro !== "") {
        mostra(mensagemErro);
    }

    mostra("FIM !");
</script>

Espero ter conseguido ajudar, qualquer dúvida estou aqui!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Funcionou aqui. Muito obrigado !!