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

Minha resolução

Fiz de uma forma um pouco diferente e gostaria da opinião de vocês, segue o código:

<meta charset="utf-8">


<script type="text/javascript">

    function pularLinha(){

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

    function mostra(param){

        document.write(param);
        pularLinha();
    }

    function checkNumber(chute){

        while(chute != numero){

            if (chute > numero) {
                alert("Seu numero é maior do que o escolhido");
            }else{
                alert("Seu numero é menor do que o escolhido");
            }



            chute = parseInt(prompt("Você errou, tente novamente ou digite 0 para sair"));

            if (chute == 0 && chute != numero) {
                return "Fracassado";
            }
        }

        return "Parabens, você acertou!"
    }

    var numero = Math.round(Math.random() * 10);
    console.log(numero);

    var chute = parseInt(prompt("Tente adivinhar o numero que eu pensei"));

    result = checkNumber(chute);

    mostra(result)


</script>
3 respostas
solução!

if (chute == 0 && chute != numero) { return "Fracassado";

Neste if, a segunda condição já foi analisada anteriormente no while, se tornando desnecessária. Afinal, se o chute for igual a 0, obviamente o chute será diferente do número, pois - que eu saiba - o comando Math.random jamais retornará algum 0.

Fora isso, um detalhe que percebi é que vc declara as variáveis no fim do código. Não sei se esta é uma boa prática. Pelo menos para mim, fica mais confuso entender o código quando as variáveis usadas só são declaradas pós-uso.

Espero ter ajudado. Abraço!

Olá, com relação ao

if (chute == 0 && chute != numero) { return "Fracassado";

Você está certo, eu tinha testado antes sem multiplicar por 10, ai acontecia de o numero ser zero e eu precisava de uma forma de identificar quando era zero e era diferente do numero para poder parar o laço, mas com a multiplicação nunca sera zero mesmo. Com relação as variáveis, na aula é falado pra sempre declarar as funções no topo, então declarei as variáveis logo abaixo, mas concordo contigo, é confuso ver uma função usando a variável e ela só la embaixo. Farei algumas alterações com base na sua observação, obrigado.

Por nada! Estou curtindo muito os cursos e estamos juntos na caminhada. Abraço!