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

JOGO ADIVINHA + input + botton + 3 tentativas

Oláá! Estou tentando acrescentar 3 tentativas, mas infelizmente não consigo. Apesar de exibir 3 notificações, o input não aparece após minha tentativa. Acredito que o problema esteja no else, mas não consigo resolver embora tenha tentado.

!DOCTYPE html>
<meta charset = "UTF-8">

<center>
<h1>Programa de adivinhação</h1>

<b>Instruções</b>
<br>
1- Você tem 3 tentativas.
<br>
2 - Coloque seu palpite dentro da caixinha.
<br>
3 - Clique em "Confirmar"
<br><br><br>


<input type="text" placeholder="Seu chute">
<button>Confirmar</button>
</center>
<script>
//função de imprimir na tela
    function mostra (frase) {
        document.write ("<br");
    }



//função de verificar os palpites
    function verifica () {
        while (jogada <= 3) {

            if (input.value == gerado) {
                    alert ("Vc acertou!");
                    mostra ("FIM");

                } else {
                    alert ("tente novamente!");
                }
                jogada++
            }
        }  
//Jogar

var gerado = Math.round (Math.random () * 10);

var jogada = 1;

var input = document.querySelector ("input");
            input.value = "";
            input.focus ();

var button = document.querySelector ("button");
    button.onclick = verifica;

</script>
2 respostas
solução!

Como você está usando o button.onclick pra chamar a função verifica o while(jogada <= 3) executa as 3 jogadas de uma vez, acertando ou não. Nesse caso se trocar o while por if vai resolver o problema já que precisa clicar no botão pra tentar de novo, porém, você vai precisar de uma variável booleana pra checar se acertou, facilitando os alert pro usuário. Já usando o if fica : if( jogada <= 3 && acertou == false){ lógica }

<meta charset = "UTF-8">

<center>
<h1>Programa de adivinhação</h1>

<b>Instruções</b>
<br>
1- Você tem 3 tentativas.
<br>
2 - Coloque seu palpite dentro da caixinha.
<br>
3 - Clique em "Confirmar"
<br><br><br>


<input type="text" placeholder="Seu chute">
<button>Confirmar</button>
</center>
<script>

//função de imprimir na tela
    function mostra (frase) {
        document.write ("<br");
    }



//função de verificar os palpites
    function verifica () {
        if (jogada <= 3 && acertou == false) {

            if (input.value == gerado) {
                    alert ("Vc acertou!");
                    mostra ("FIM");
                    acertou = true;
            } else {
                if(jogada == 3){

                    alert ("Acabaram as tentativas!");
                } else{

                    alert("Tente novamente");
                    input.value = '';
                    input.focus();
                }

                jogada++
            } 
        }
    }    
//Jogar

var gerado = Math.round (Math.random () * 10);
var jogada = 1;
var acertou = false;

var input = document.querySelector ("input");
            input.value = "";
            input.focus ();

var button = document.querySelector ("button");
    button.onclick = verifica;

</script>

Dei uma mexida no código e agora funciona. Para de executar caso acerte e mostra acabaram as tentativas se não acertar em 3 tentativas

Perfeito!! Muito obrigada!! Dei uma aprimorada também, acrescentei para que possa ser jogado entre duas pessoas. Uma informa qual o número deve ser acertado e o segundo tenta acertar.