3
respostas

[Dúvida] Jogo numero secreto

Bom dia, Estou com uma dúvida no jogo do numero secreto, após habilitar a o botão de reiniciar jogo, não consigo que ele execute a função de reiniciar jogo. Pode me ajudar, por favor?

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

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

exibirTextoNaTela('h1', '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','Parabéns, você acertou!');
  let palavraTentativas = tentativas > 1 ? 'tentativas' : 'tentativa';
  let mensagemTentativas = `Você descobriu o número secreto com ${tentativas} ${palavraTentativas}!`;
  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 gerarNumeroAleatorio(){ return parseInt(Math.random() * 10 + 1); } function limparCampo(){ chute = document.querySelector('input'); chute.value = ''; } function reiniciarJogo(){ numeroSecreto = gerarNumeroAleatorio(); limparCampo(); tentativas = 1; exibirTextoNaTela('h1', 'Número Secreto'); exibirTextoNaTela('p', 'Escolha um número entre 1 e 10'); }

3 respostas

Oi Letícia, tudo bem? 😊

Entendi sua dúvida sobre o jogo do número secreto.

Vamos analisar o que pode estar acontecendo e como solucionar.

Pelo código que você compartilhou, a função reiniciarJogo() parece estar definida corretamente.

Ela é responsável por gerar um novo número secreto, limpar o campo de chute, reiniciar o contador de tentativas e exibir as mensagens iniciais.

No entanto, para que essa função seja executada, é preciso que ela seja chamada quando o botão "Reiniciar" for clicado.

Verifique se você adicionou um "escutador de eventos" (event listener) ao botão "Reiniciar".

Esse "escutador" é responsável por "ouvir" o evento de clique no botão e, quando esse evento ocorrer, executar a função reiniciarJogo().

Você pode fazer isso adicionando o seguinte código JavaScript:

document.getElementById('reiniciar').addEventListener('click', reiniciarJogo);

Este código deve ser adicionado após a definição da função reiniciarJogo().

Ele busca o elemento com o ID "reiniciar" (que é o seu botão) e adiciona um "escutador de eventos" a ele.

Quando o evento de 'click' (clique) ocorrer, a função reiniciarJogo será chamada.

Certifique-se de que o código acima foi implementado corretamente.

🎓 Para saber mais:

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

Não deu certo :(

function limparCampo(){ chute = document.querySelector('input'); chute.value = ''; } function reiniciarJogo(){ document.getElementById('reiniciar').addEventListener('click', reiniciarJogo); numeroSecreto = gerarNumeroAleatorio(); limparCampo(); tentativas = 1; exibirTextoNaTela('h1', 'Número Secreto'); exibirTextoNaTela('p', 'Escolha um número entre 1 e 10'); }

Olá Letícia, tudo bem?

Irei tentar te apresentar uma possível solução para o seu código, antes de alterar o código em javascript, verifique se você fez a criação da função dentro do código em HTML:

1o passo - Criar função na linha 28 do HTML:

    <button onclick=”reiniciarJogo()” id=”reiniciar”
    class=”container_botao” disabled>Novo jogo</
    button>

2o passo - Alterar o código em JavaScript (Segue meu código comentado como exemplo para a sua alteração):

// app.js // interação entre o javascript e html, definição dos textos da interface.

let numeroSecreto = gerarNumeroAleatorio();

let tentativas = 1;

let titulo = document.querySelector('h1'); titulo.innerHTML = 'Jogo do número secreto';

let paragrafo = document.querySelector('p'); paragrafo.innerHTML = 'Escolha um número entre 1 e 10';

// Definição de textos por funções e executando

function exibirTextoNaTela(tag, texto) { let campo = document.querySelector(tag); campo.innerHTML = texto; } // add comportamento para uma função function exibirMensagemInicial(){

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

exibirMensagemInicial();

// programar botões // verificarChute foi estabelecido dentro do onclick do botão no código HTML

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

    if(chute == numeroSecreto){
            exibirTextoNaTela('h1','Acertou');
            let palavraTentativa = tentativas > 1? 'tentativas' : 'tentativa';
            let mensagemTentativas = `Você descobriu o número secreto com ${tentativas} ${palavraTentativas}!`; 
            exibirTextoNaTela('p', mensagemTentativas);
            // Realizar ativação do botão novo jogo
            document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
            if(chute > numeroSecreto){
                    ExibirTextoNaTela('p', 'O núemro secreto é menor');
            } else{
                    ExibirTextoNaTela('p', 'O núemro secreto é maior');
            }
            //tentativas = tentativas + 1;
            tentativas++;
            
            //Limpar o campo de tentativas
            limparCampo();
            
    }

}

// Função que retorna um número aleatório

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

} //definição da função para limpar o campo function limparCampo(){ chute = document.querySelector('input'); chute.value = ''; }

//Função que será ativada ao clicar no botão function reiniciarJogo() { numeroSecreto = gerarNumeroAleatorio(); limparCampo(); tentativas = 1; exibirMensagemInicial(); document.getElementById('reiniciar').setAttribute('disabled',true); }

Espero ter te ajudado com o seu problema em questão. Caso ele permaneça, podemos tentar achar outra solução.

Valeeeeus