1
resposta

[Bug] Problema com o console imprimindo mensagens além das esparadas

Simplesmente o código imprime no console corretamente o array esperado com os números já sorteados, porém ele fica imprimindo junto arrays não esperados com as mensagens da tela(Exemplo: (4) 48, 3, 23, 43, ['Jogo do número secreto'](não esperado), ['Escolha um número entre 1 e 50'](não esperado)). Não sei se deixei passar algum erro, mas alguém poderia dar uma ajuda? console

O código js completo:

let listasDeNumerosSorterados = []; let numeroLimite = 50; let numeroSecreto = gerarNumeroAleatorio(); let tentativas = 1;

function exibirTextoNaTela(tag, texto) { let campo = document.querySelector(tag); campo.innerHTML = texto; responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate:1.2});}

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

exibirMensagemInicial();

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 nmero 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 gerarNumeroAleatorio() { let numeroEscolhido = parseInt(Math.random() * numeroLimite + 1); let quantidadeDeElementosNaLista = listasDeNumerosSorterados.length;

if (quantidadeDeElementosNaLista == numeroLimite) {
    listasDeNumerosSorterados = [];
}

if (listasDeNumerosSorterados.includes(numeroEscolhido)) {
    return gerarNumeroAleatorio();
} else {
    listasDeNumerosSorterados.push(numeroEscolhido);
    console.log(listasDeNumerosSorterados);
    return numeroEscolhido;
}

}

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

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

Obs: vale lembrar que segui todos os passos do curso lógica de programação com javascript, a única mudança foi no núemro limite, que alterei para 50.

1 resposta

Pelo que você descreveu, o problema parece ser com a impressão de arrays não esperados no console, que incluem mensagens da tela. Isso pode estar ocorrendo porque o método console.log está sendo chamado em algum ponto do seu código para imprimir os listasDeNumerosSorterados, e isso pode estar capturando mais do que apenas os números sorteados, possivelmente devido a chamadas à função de geração de números aleatórios ou outras interações.

No entanto, revisando seu código, o único lugar onde você está usando console.log é dentro da função gerarNumeroAleatorio(), e isso deveria imprimir somente o array de números sorteados cada vez que um novo número é adicionado à lista. Isso é esperado e não deveria incluir mensagens de texto como as que você mencionou ("Jogo do número secreto", "Escolha um número entre 1 e 50").

Uma possibilidade é que essas mensagens estejam sendo adicionadas ao console por alguma extensão do navegador ou outro código não mostrado aqui que interage com seu script. No entanto, assumindo que o problema é isolado ao código fornecido, aqui estão algumas sugestões:

  1. Revisão do uso do console.log: Confirme se o console.log está sendo chamado em outro lugar além da função gerarNumeroAleatorio(). Se estiver, considere remover ou comentar essas chamadas para ver se o problema persiste.

  2. Checagem da Execução de Funções: Garanta que a função gerarNumeroAleatorio() não está sendo chamada de forma inesperada ou em momentos não desejados, o que poderia levar à impressão adicional no console.

  3. Isolamento do Problema: Tente isolar o problema comentando partes do código para ver se pode identificar a fonte exata do comportamento inesperado. Isso pode ajudar a determinar se o problema está realmente no código fornecido ou em alguma interação externa.

  4. Revisão da Lógica de Impressão: Certifique-se de que a lógica dentro da função gerarNumeroAleatorio() esteja funcionando como esperado, sem efeitos colaterais indesejados.

  5. Utilização de Ferramentas de Desenvolvedor do Navegador: Use as ferramentas de desenvolvedor do seu navegador para inspecionar chamadas ao console e ver se você pode rastrear a origem das mensagens inesperadas.

  6. Revisão de Outros Eventos de UI: Confira se não há manipuladores de eventos ou outras interações de UI que possam estar chamando funções de forma inesperada, o que poderia levar à impressão dessas mensagens.

Se o problema persistir mesmo após essas verificações, pode ser útil compartilhar mais detalhes sobre o contexto em que o código está sendo executado (como a estrutura HTML associada ou outros scripts que estão sendo carregados na mesma página), pois o problema pode estar na interação entre seu código JavaScript e outros elementos da página.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade