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

Gerar um novo número aleatório se o jogador acertar.

Tentei fazer um programa onde se o jogador acertar o número ele mostra "Você acertou" e depois gera um novo número aleatório para continuar jogando.

Mas quando clico no botão e, vendo no console qual foi o número gerado, insiro o número correto e mesmo assim ele apresenta sempre "Você errou".

Não consegui encontrar uma maneira de fazer a variável random receber um número novo depois que o jogador clickar no botão e ele tiver acertado.

<meta charset="UTF-8">
Qual o seu palpite?
<br>
<input/>
<br>
<button>Tentar advinhar.</button>

<script>
    var random = Math.round(Math.random() * 10);
    var input = document.querySelector("input");
    var button = document.querySelector("button");
    input.focus();

    function comparar() {

        if (input.value == random) {

            alert("Você acertou!");
            input.value = "";
            input.focus();
            var random = Math.round(Math.random() * 10);

        } else {
            alert("Você errou!");
            input.value = "";
            input.focus();
        }

    }

    button.onclick = comparar;

</script>
3 respostas
solução!

Oi Eriky tudo bem?

Tá tendo problema de escopo. As variáveis random não são a mesma pois você tá redeclarando ela dentro da função. Tira o var da frente das duas que vai funcionar como deseja.

Espero ter ajudado!!!

Era isso mesmo...acabei dando copiar e colar por preguiça e esqui o var lá dentro...tirando funcionou exatamente como queria! Muito obrigado!

Disponha e bons estudos!!!