1
resposta

[Bug] bug no código ou no jogo

let numeroSecreto = gerarNumeroAleatorio();

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 de 1 a 10.');


function verificarChute() {
    let chute = document.querySelector('input') .value;
    console.log (numeroSecreto == chute) 
    
    if (numeroSecreto == chute) {
        exibirTextoNaTela ('h1, Você acertou :)');
        exibirTextoNaTela ('p, Você descobriu o número secreto.')
    } else {
        if ( numeroSecreto > chute);
        exibirTextoNaTela ('p, O número secreto é maior!');
        else {
        exibirTextoNaTela ('p,O número secreto é mmenor!');
        }
    }
    }

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

Oi Geovanna,

Percebi que você está com um problema na lógica do seu código. 💡

O erro principal está na função verificarChute. Na linha if ( numeroSecreto > chute); você colocou um ponto e vírgula (;) no final do if, o que faz com que o bloco de código seguinte (exibirTextoNaTela ('p, O número secreto é maior!');) seja executado sempre, independente da condição.

Além disso, a sintaxe do else também está incorreta.

Para corrigir, remova o ponto e vírgula após a condição do if e ajuste a sintaxe do else.

Veja como deve ficar:

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

    if (numeroSecreto == chute) {
        exibirTextoNaTela('h1', 'Você acertou :)');
        exibirTextoNaTela('p', 'Você descobriu o número secreto.');
    } else {
        if (numeroSecreto > chute) {
            exibirTextoNaTela('p', 'O número secreto é maior!');
        } else {
            exibirTextoNaTela('p', 'O número secreto é menor!');
        }
    }
}

Outro ponto importante é que você está comparando um número com uma string, pois o valor do input vem como texto.

Para corrigir isso, você pode converter o valor do input para número usando parseInt() ou parseFloat(). 🧐

let chute = parseInt(document.querySelector('input').value);

Com essas alterações, seu jogo deve funcionar corretamente. 😎

Para saber mais: Documentação sobre operadores de comparação em JavaScript.

Continue praticando e explorando as possibilidades da programação! 💪