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

[Dúvida] Botão reiniciar jogo não funciona

Fiz tudo igual ao que foi passado na aula, mas o botão de iniciar jogo não fica disponível depois de acertar o número. Qual o problema? Aqui está o código: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Oi Beatriz, tudo bem? 😊

Analisando o seu código, identifiquei que o problema está na função verificarChute(). 💡

Na linha 26, você está removendo o atributo disabled do botão "Reiniciar" apenas quando o jogador acerta o número secreto, o que impede que o jogo seja reiniciado após uma tentativa incorreta.

Para corrigir isso, você pode mover a linha document.getElementById('reiniciar').removeAttribute('disabled'); para dentro da função reiniciarJogo(). 🌍

Dessa forma, o botão "Reiniciar" será habilitado sempre que o jogo for reiniciado.

function reiniciarJogo() {
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial();
    document.getElementById('reiniciar').removeAttribute('disabled');
}

Com essa alteração, o jogo deverá reiniciar corretamente após o jogador acertar o número secreto. 👍

🎓 Para saber mais:

Espero ter ajudado e bons estudos! 🤗

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓

Oii, entendi! Mas e se eu quiser fazer com que a possibilidade de começar um novo jogo (o botão reiniciar) só exista depois de uma tentativa correta, quando o jogador acertar o número secreto mesmo? Aí como eu poderia reescrever o meu código?

solução!

Beatriz,

Para que o botão "Reiniciar" só fique disponível após o jogador acertar o número secreto, você pode fazer o seguinte:

  1. Mantenha a linha document.getElementById('reiniciar').removeAttribute('disabled'); dentro do bloco if da função verificarChute(), que é executado quando o jogador acerta o número.
  2. Garanta que o botão comece desabilitado no HTML. 🤔
  3. Na função reiniciarJogo(), adicione a linha document.getElementById('reiniciar').setAttribute('disabled', true); para desabilitar o botão novamente no início de um novo jogo.

Com essas alterações, o botão "Reiniciar" só será habilitado quando o jogador acertar o número secreto e será desabilitado novamente quando o jogo for reiniciado. 👍

Exemplo:

function verificarChute() {
    let chute = document.querySelector('input').value;

    if (chute == numeroSecreto) {
        exibirTextoNaTela('h1', 'Acertou!');
        let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
        let mensagemTentativas = `Você descobriu o número secreto com ${tentativas} ${palavraTentativa}`;
        exibirTextoNaTela('p', mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p', 'O número secreto é menor');
        } else {
            exibirTextoNaTela('p', 'O número secreto é maior');
        }
        tentativas++;
        limparCampo();
    }
}

function reiniciarJogo() {
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}

🎓 Para saber mais:

Espero ter ajudado! 🧐

📌 Nota: Otimize seus estudos com o guia "Como turbinar seus estudos utilizando o fórum" e insira o código usando a ferramenta do fórum. como inserir bloco de código

Agora está funcionando certinho, muito obrigada! :)