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

[Dúvida] Botão Novo jogo: Não funciona

Sequi o código analisei e nada, no HTML também não vi nada

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 01 e 10');

function exibirMensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do número secreto');
    exibirTextoNaTela('p', 'Escolha um número entre 01 e 10');
}
exibirMensagemInicial()// Toda função deve ser chamada , obrigatoriamente , fora da função

function verificarChute(){
    //Recebe o valor pois usa o campo imput e value para pegar o valor
    let chute = document.querySelector('input').value;
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1', 'Parabéns')
        let palavraTentativa = tentativas > 1 ? `tentativas`:`tentativa`;
        let mensagensTentativas =`Você encontrou o número secreto com ${tentativas} com ${palavraTentativa}`        
        exibirTextoNaTela('p', mensagensTentativas)
        //Aqui vai afetar o botão novo Jogo, 
        // getElemenById vai agir sobre o id, nesse caso do botão, 
        // que deve ser escrito igualmente
        //remove.Attribute: Remove atributos, no caso [disabled] do botão, que está na parte html
        document.getElementById('reiniciar').removeAttribute('disabled');        
    }else if (chute > numeroSecreto){
        exibirTextoNaTela('p', 'Numero é menor')
    }else{
        exibirTextoNaTela('p', 'Número é maior')
    }
    tentativas++;
    limpaCampo()        
}

function gerarNumeroAleatorio() {
    return parseInt(Math.random() * 10 + 1);
}
//Apos cada numero errado o campo automaticamente limpa
function limpaCampo(){
    chute = document.querySelector('input');
    chute.value = '';
}

function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial(); 
    document.getElementById('reiniciar').setAttribute('disabled', true)// setAttrinute(Estaus, verdadeiro ou falso), no caso , tue pois que que seja disable   
}

HTML

<body>

    <div class="container">
        <div class="container__conteudo">
            <div class="container__informacoes">
                <div class="container__texto">
                    <h1>Adivinhe o <span class="container__texto-azul">numero secreto</span></h1>
                    <p class="texto__paragrafo">Escolha um número entre 1 a 10</p>
                </div>
                <input type="number" min="1" max="10" class="container__input">
                <div class="chute container__botoes">
                    <button onclick="verificarChute()" class="container__botao">Chutar</button>
                    <button onclick="reiniciarJogo()" id="reiniciar" class="container__botao" disabled>Novo jogo</button>
                </div>
            </div>
            <img src="./img/ia.png" alt="Uma pessoa olhando para a esquerda" class="container__imagem-pessoa" />
        </div>
    </div>




    <script src="app.js" defer></script>
</body>

Algém consegue entender o que pode estar acontecendo?

3 respostas

Oi Ivan,

Identifiquei um pequeno detalhe que pode estar causando o problema no botão "Novo jogo".

Na função reiniciarJogo, você está chamando limparCampo(), mas a função correta é limpaCampo().

function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limpaCampo(); // Correção aqui
    tentativas = 1;
    exibirMensagemInicial(); 
    document.getElementById('reiniciar').setAttribute('disabled', true)
}

Essa pequena correção deve resolver o problema do botão não funcionar corretamente. 👍

Para saber mais: Manipulação de Atributos HTML com JavaScript

Continue praticando e explorando as funcionalidades do JavaScript! 🤔

tux matrix Caso este post o tenha ajudado, marque-o como solucionado ☑️. Bons Estudos! 🤓
solução!

Funcionou perfeitamente, obrigado

solução