Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Erro no laço de repetição

Oi pessoal! Tentei implementar o laço de repetição para que o usuário tenha apenas 3 tentativas e informe qtas tentativas ainda tem. Porém estou com um erro qdo eu digito o primeiro número errado, ele aparece 3 vezes o alert sem que eu possa tentar novamente. Alguém poderia me ajudar?

<meta charset="UTF-8">

<input />
<button>Compare com o meu segredo</button>

<script>

    function sorteia() {
        var segredo = Math.round(Math.random() * 10);
        console.log(segredo);
        return segredo;
    }

     function verifica() {
         for (var tentativas = 1; tentativas <= 3; tentativas++) {
             if (input.value == segredo) {
                alert("Você acertou!!!");
                 break;
             } else {
                alert("Você errou!!!!Você tem mais " + (3 - tentativas) + " tentativas.");
             }
            input.value = "";
            input.focus(); 
        }
    }

    var segredo = sorteia();
    var input = document.querySelector("input");
    input.focus();

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

</script>
1 resposta
solução!

Bom dia!

Como sua interação com o usuário ocorre fora do "for", esse sempre será o comportamento do seu código.

Ao meu ver, você deve controlar por variável global a quantidade de erro, e tratar com if a tentativa.

Segue o código que ajustei.

<meta charset="UTF-8">

<input />
<button>Compare com o meu segredo</button>

<script>

    var tentativas = 3;

    function sorteia() {
        var segredo = Math.round(Math.random() * 10);
        console.log(segredo);
        return segredo;
    }

     function verifica() {
        if (tentativas == 0){
            alert("Você não tem mais tentativas");
            return;
        }
        if (input.value == segredo) {
            alert("Você acertou!!!");
        }else{
            tentativas--;
            alert(`Você errou!!!! Você tem mais ${tentativas} tentativas.`);			
        }
        input.value = "";
        input.focus(); 
    }

    var segredo = sorteia();
    var input = document.querySelector("input");
    input.focus();

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

</script>

Espero ter ajudado. Se sua dúvida foi sanada, marque este tópico como solucionado.

Bons estudos!