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

Dúvida sobre código de colega

Boa tarde pessoal, estou com uma dúvida no código de um colega, vcs poderiam me ajuda a entender, por favor? coloquei em // os campos com dúvida. Obrigado!

<meta charset="UTF-8">

<input/>

<button>clique-me</button>

<script>

    var entrada = document.querySelector("input"); 
    entrada.focus(); 
    var segredo = Math.round(Math.random() * 10); 
    console.log("O segredo é " + segredo);

    var tentativasRestantes = 3; 
    var ganhouJogo = false;  // não entendi o uso dessa variável. Ela é necessária?
    function verifica() {

        if(ganhouJogo) { 

            alert("Você já havia acertado o segredo");
        } else {

            var chute = entrada.value; 

            if(tentativasRestantes > 0) {
                if(chute == segredo) {

                    alert("Você ACERTOU");
                    ganhouJogo = true; // aqui também não entendi . O que quer dizer: ganhouJogo= true? Não fez sentido para mim

                } else{

                    tentativasRestantes--;  // qual o significado desse sinal de --;

                    alert("Você ERROU. Tentativas restantes = " + tentativasRestantes);
                    entrada.value = "";
                    entrada.focus(); 
                }
            } else {

                alert("GAME OVER");
            }
        }
    }

    var botao = document.querySelector("button"); 

    botao.onclick = verifica; 

</script>
2 respostas
solução!

Olá.

Tudo depende do que você vai querer aplicar. A variável ganhouJogo está controlando se o usuário acertou ou não a resposta. Se o usuário acertou, a mensagem de vitória aparece na tela e a variável muda seu valor pra true. Caso o usuário tente jogar novamente, o if (ganhouJogo) será verdadeiro e o conteúdo dele que será executado, não o conteúdo do else, que é onde aumenta número de tentativas e faz mais coisas. Ou seja, ele tá ali pra evitar que a lógica do jogo continue acontecendo mesmo após o usuário já ter acertado, entende? Claro que isso tudo muda se você der refresh na página, onde tudo volta ao estado inicial. Enfim, há outras formas de tratar quando o usuário acertou, como redirecionar pra outra página quando isso acontecer, remover o botão da página, mudar a cor do background, tocar uma música, etc.

Quanto ao tentativasRestantes--;, isso é um decremento abreviado para a seguinte expressão: tentativasRestantes = tentativasRestantes - 1;

Pra incrementar em 1 só colocar sinal de soma: tentativasRestantes++;

Incrementos ou decrementos maiores que 1, podem ser feitos dessa forma: tentativasRestantes += 5;

Se ficou dúvida, diga aí.

Abs.

Muito obrigado , Bruno Paschoali Regis!

Agora eu consegui entender, acho que a prática vai me ajudar a entender ainda mais com o tempo. Abs