1
resposta

[Bug] Jogo do N° Secreto

Bom dia atodos, estou com um bug no meu código da aula de Lógica de Programação que tentei solucionar de diversas formas e ainda persiste o erro.

let numeroSecreto = 3;

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

exibirTextoNaTela('h1', 'JOGO DO N° SECRETO');
exibirTextoNaTela('p', 'Escolha um n° 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 número secreto com ${tentativas} ${palavraTentativa}!`);
        exibirTextoNaTela('p', mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p', 'O n° secreto é menor.') 
        } else {
            exibirTextoNaTela('p', 'O n° secreto é maior.');
        }
        tentativas++;
        limparCampo();
    }
}

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

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

Basicamente, quando entro no site para o rodar o game, ele não apaga o valor digitado e não mostra o resultado com a variável "mensagemTentativas"

1 resposta

Olá, Everton.

Tudo bem?

Pelo que você descreveu, parece que há alguns problemas no seu código que estão impedindo o funcionamento correto do jogo. Vamos corrigir esses pontos:

  1. Limpar o campo de entrada: A função limparCampo está tentando acessar a variável chute de forma incorreta. O correto é selecionar o campo de entrada e limpar o valor.

  2. Variável tentativas: Você não declarou a variável tentativas em lugar algum. É necessário inicializá-la para que o código funcione corretamente.

Aqui está uma versão corrigida do seu código:

let numeroSecreto = 3;
let tentativas = 0; // Inicializa a variável tentativas

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

exibirTextoNaTela('h1', 'JOGO DO N° SECRETO');
exibirTextoNaTela('p', 'Escolha um n° 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 número secreto com ${tentativas} ${palavraTentativa}!`;
        exibirTextoNaTela('p', mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p', 'O n° secreto é menor.') 
        } else {
            exibirTextoNaTela('p', 'O n° secreto é maior.');
        }
        tentativas++;
        limparCampo();
    }
}

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

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

Com essas alterações:

  • A variável tentativas é inicializada no início do código.
  • A função limparCampo agora seleciona corretamente o campo de entrada e limpa o valor digitado.

Espero ter ajudado e bons estudos!