1
resposta

Botao reiniciar não funciona

Será que fiz algo errado:

let numeroSecreto = gerarNumeroAleatorio(); let tentativas = 1;

function exibirTextoNaTela(tag, texto) { let campo = document.querySelector(tag); campo.innerHTML = texto; }

exibirTextoNaTela('h1', 'Jogo do número secreto'); exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');

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 numero secreto com ${tentativas} ${palavraTentativa}!`;
    exibirTextoNaTela('p', mensagemTentativas);
    document.getElementById('reiniciar').removeAttribute('disabled');
}else{
    if (chute> numeroSecreto){
        exibirTextoNaTela('p', 'O numero secreto é menor.');
    }else{
        exibirTextoNaTela('p', 'o numero é maior.');
    }
    tentativas++;
    limparCampo(); 
}
}

function gerarNumeroAleatorio() { return parseInt(Math.random() * 10 + 1); }

function limparCampo() { chute = document.querySelector('input'); chute.value = ''; }

function reiniciarJogo() { numeroSecreto = gerarNumeroAleatorio(); limparCampo(); tentativas = 1;}

1 resposta

Bom dia, a lógica do botão reiniciar não parece estar atrelada. Em um dado momento no código, o jogo reinicia, mas não há algo atrelado ao evento de clique do botão reiniciar no código com as informações passadas.

Você pode tentar formular uma função chamada reiniciarJogo() e usá-la quando necessário:

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

Quando alguém acertar o chute, a linha 14 executa e o botão de reiniciar fica disponível

document.getElementById('reiniciar').removeAttribute('disabled');

Em seguida, com um eventListener monitorando cliques no botão, assim que o usuário clicar, a função reiniciarJogo vai reiniciar o jogo normalmente.