1
resposta

[Bug] a mensagem incial sobre tentativas já aparece errado.

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

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; numeroSecreto if (chute == numeroSecreto) { exibirTextoNaTela("h1", Voce acertou!); let palavraTentativas = tentativas > 1 ? tentativa : tentativas; let mensagem = Voce descobriu o número secreto com ${tentativas} ${palavraTentativas} .; exibirTextoNaTela("p", ${mensagem}); } else { if (chute > numeroSecreto) { exibirTextoNaTela("p", Esse número é menor, tente novamente.); } else { exibirTextoNaTela("p", Esse número é maior, tente novamente.); } tentativas++; } }

verificarChute();

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

1 resposta

Olá Thiago, identifiquei alguns erros de sintaxe no código:

  • Algumas strings estavam definidas sem as aspas, portanto o código não poderia interpreta-la corretamente.

  • Havia uma variável referenciada incorretamente no meio do código.

  • Utilização de crases (``) para interpolação de strings.

    Lembre-se que quando você cria uma variável do tipo string, o seu valor precisa ser envolvido com aspas simples ou dupla. Exemplo:
let name = "José";

    ou

let name = 'José';
E caso você defina a string diretamente como argumento na chamada de alguma função, ela também deve ser envolvida em aspas duplas ou simples. Exemplo:
exibirTextoNaTela("h1", "Jogo do número secreto");
E se você tiver usando uma variável do tipo string como argumento sozinha você pode usar:
exibirTextoNaTela("p", mensagem); 
Para interpolar strings e variáveis é necessário usar crases em JavaScript, exemplo:
let mensagem = `Você descobriu o número secreto com ${tentativas} ${palavraTentativas}.`; 

Aqui está o código corrigido:

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

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; 
    if (chute == numeroSecreto) 
    {
        exibirTextoNaTela("h1", "Você acertou!"); 
        let palavraTentativas = tentativas > 1 ? "tentativas" : "tentativa";
        let mensagem = `Você descobriu o número secreto com ${tentativas} ${palavraTentativas}.`; 
        exibirTextoNaTela("p", mensagem); 
    } else { 
        if (chute > numeroSecreto) {
            exibirTextoNaTela("p", "Esse número é menor, tente novamente."); 
        } else {
            exibirTextoNaTela("p", "Esse número é maior, tente novamente."); 
        }
        tentativas++; 
    } 
}

verificarChute();

function gerarNumeroAleatorio() 
{ 
    return parseInt(Math.random() * 10 + 1); 
}
Espero ter ajudado!!! Caso a proposta de solução tenha sido útil para você, não esqueça de marcar o tópico como solucionado e se precisar de algo mais estou a disposição!