1
resposta

Mesmo com uma tentativa meu código começa contando duas

let numeroSecreto = 3;
let tentativas = 1



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

exibirTextoNaTela('h1','Jogo do número secreto');
exibirTextoNaTela('p','Selecione um número entre 1 e 10');


function verificarChute(){
    let chute = document.querySelector('input').value;
    if(chute == numeroSecreto){
        exibirTextoNaTela('h1',`Parabéns!!!!`);
        let palavraTentativa = tentativas > 1?'tentativas':'tentativa';
        let mensagemTentativa = (`Você acertou, o numero secreto é ${numeroSecreto} e você descobriu com ${tentativas} ${palavraTentativa}`)
        exibirTextoNaTela('p',`${mensagemTentativa}`);
    } else if (chute > numeroSecreto){
        exibirTextoNaTela('h1',`Errou`);
        exibirTextoNaTela('p',`O numero secreto é menor que ${chute}`);
    } else{
        exibirTextoNaTela('h1',`Errou`);
        exibirTextoNaTela('p',`O numero secreto é maior que ${chute}`);
}}tentativas ++;


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

Boa tarde Victor! Tudo bem com você?

No seu código, a linha tentativas ++; está fora da função verificarChute, o que faz com que ela seja executada imediatamente quando o script é carregado, aumentando as tentativas antes mesmo de qualquer chute ser feito.

Para resolver, temos que mover a linha tentativas ++; para dentro do bloco else da função verificarChute, assim ela só será incrementada quando o chute estiver errado. Segue o código corrigido:

function verificarChute(){
    let chute = document.querySelector('input').value;
    if(chute == numeroSecreto){
        exibirTextoNaTela('h1',`Parabéns!!!!`);
        let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
        let mensagemTentativa = (`Você acertou, o numero secreto é ${numeroSecreto} e você descobriu com ${tentativas} ${palavraTentativa}`);
        exibirTextoNaTela('p',`${mensagemTentativa}`);
    } else {
        exibirTextoNaTela('h1',`Errou`);
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p',`O numero secreto é menor que ${chute}`);
        } else {
            exibirTextoNaTela('p',`O numero secreto é maior que ${chute}`);
        }
        tentativas++;
    }
}

Com essa alteração, a contagem de tentativas só será incrementada quando o chute estiver incorreto.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

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