Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resposta

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

function verificarChute() {
    let chute = document.querySelector("input").value; //Utilizamos .value para trabalhar com valores numéricos
    if (chute == numeroSecreto) {
        exibirTextoNaTela("h1", "Parabéns!"); //Se o chute for certo, o head1 mudará
        exibirTextoNaTela("p", "Você acertou o número secreto!");
    }
        else {
            if (chute > numeroSecreto) {
                exibirTextoNaTela("h1", "Tente novamente!");
                exibirTextoNaTela("p", "O número secreto é menor do que " + chute);
            }
                else {
                    exibirTextoNaTela("h1", "Tente novamente!");
                    exibirTextoNaTela("p", "O número secreto é maior do que " + chute);
                }
        }
}

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

Fiquei pensando como seria a utilização do operador ternário aqui. Obtive a seguinte resposta mediante ajuda. Caso alguém saiba outra forma de compactar ainda mais, comenta aí.

function verificarChute() {
    let chute = document.querySelector("input").value; // Utilizamos .value para trabalhar com valores numéricos

    let mensagemH1 = chute == numeroSecreto ? "Parabéns" : "Tente novamente!";
    let mensagemP = chute == numeroSecreto ? "Você acertou o número secreto!" :
                                              chute > numeroSecreto ? "O número secreto é menor do que " + chute :
                                                                      "O número secreto é maior do que " + chute;

    exibirTextoNaTela("h1", mensagemH1);
    exibirTextoNaTela("p", mensagemP);
}
1 resposta
solução!

Olá, Arthur! Tudo joia?

Vejo que você está explorando a refatoração do seu código, isso é ótimo! Sua solução com operador ternário está correta e bem estruturada.

No entanto, é importante lembrar que a refatoração de código não é apenas sobre tornar o código mais curto, mas também sobre torná-lo mais legível e manutenível. Às vezes, o uso excessivo de operadores ternários pode tornar o código mais difícil de ler, especialmente para pessoas que não estão familiarizadas com a sua estrutura.

No seu caso, você conseguiu manter a legibilidade do código, o que é ótimo. Ainda assim, aqui está uma pequena sugestão para tornar o código um pouco mais limpo:

function verificarChute() {
    let chute = document.querySelector("input").value; // Utilizamos .value para trabalhar com valores numéricos

    let acertou = chute == numeroSecreto;
    let mensagemH1 = acertou ? "Parabéns" : "Tente novamente!";
    let mensagemP = acertou ? "Você acertou o número secreto!" :
                              "O número secreto é " + (chute > numeroSecreto ? "menor" : "maior") + " do que " + chute;

    exibirTextoNaTela("h1", mensagemH1);
    exibirTextoNaTela("p", mensagemP);
}

Nesta versão, eu criei uma variável acertou para armazenar o resultado da comparação entre chute e numeroSecreto. Isso torna o código um pouco mais legível, pois agora é mais fácil entender o que essa condição significa sem ter que ler e interpretar a comparação toda vez.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.