1
resposta

[Dúvida] Adicionei uma dica para cada chute. só que no final ele mostra 3 vezes que errei.

<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(10);
        console.log (numeroPensado);

        var tentativas = 1;

        while (tentativas <= 3) {
            var chute = parseInt(prompt("Já pensei. Qual número você acha que é?"));

            if(chute == numeroPensado) {
                mostra("UAU ! Você acertou, o numero que eu pensei é " + numeroPensado);
                break;
             }

            if(chute > numeroPensado) {
                alert("Você errou, seu chute é maior que o número pensado.") 
            }
                    else {
                            alert("Você errou, seu chute é menor que o número pensado.")
                        }
            tentativas++;

            if(tentativas = 4) {
                mostra("Você excedeu o número de tentativas.")
            }

        }

        mostra("FIM")

</script>
1 resposta

Oii Daniel, tudo bem com você?

Muito legal a sua solução!

Quando estamos lidando com comandos condicionais: if; if-else; if-elseif-else, é muito importante que nós coloquemos uma condição de comparação válida, isto é, uma comparação lógica ou um operador lógico (true, false). Ao analisar o seu código, percebi que no trecho

 if(tentativas = 4) {
                mostra("Você excedeu o número de tentativas.")
            }

dentro da condição do comando, tentativas = 4, está sendo utilizado o operador de atribuição ao invés do operador de comparação, e quando isso acontece ele atribui o valor da variável tentativas para 4, e considera o comando como feito e portanto, efetua a operação dentro do condicional. Nesse caso, é importante que nós utilizemos o operador == para fazer a comparação, dessa maneira:

 if(tentativas == 4) {
                mostra("Você excedeu o número de tentativas.")
            }

Assim, comparando o valor da variável tentativas com o número 4, e apenas caso eles sejam iguais, entrará no bloco de código do if.

Fico à disposição caso tenha ficado alguma dúvida e bons estudos!

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