Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Bug] Você acertou com 1 tentativa

Pessoal por favor me ajudem a solucionar, não estou entendendo o porque não está somando as tentativas, sempre que rodo o game por mais tentativas que faço, o jogo sempre retorna "Você acertou com 1 tentativa"

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;
    console.log(chute == numeroSecreto);
    let numeroTentativas = 1
    
    if (chute == numeroSecreto){
                let palavraTentativa = numeroTentativas > 1 ? 'tentativas' : 'tentativa'
        let mensagemTentativas = (`Você acertou com ${numeroTentativas} ${palavraTentativa}`)  
            exibirTextoNaTela('h1', 'Você acertou meu jovem');
        exibirTextoNaTela('p', mensagemTentativas)
        
        
    } else if (chute < numeroSecreto)
    exibirTextoNaTela('p', 'O número secreto é maior');
    
    else {
        exibirTextoNaTela('p', 'O número secreto é menor')
          }
          numeroTentativas++
          
    }
    

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

Tentei trocar de lugar o numeroTentativas++ , mas não surtiu efeito ....

solução!

Olá Fausto,

No seu código existe um engano, que é o que está gerando esse 'bug'.

Sempre que a função verificarChute() é chamada, você define o valor de numeroTentativas como 1, na linha let numeroTentativas = 1. Para corrigir isso, mova essa linha para fora da função, e a contagem não vai mais reiniciar toda vez que uma nova tentativa for executada.

Sugiro que coloque logo abaixo da linha que diz let numeroSecreto = gerarNumeroAleatorio(); (a primeira).

let numeroSecreto = gerarNumeroAleatorio();


// Adicione isto:
let numeroTentativas = 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;
    console.log(chute == numeroSecreto);
    
    // Retire isto:
    // let numeroTentativas = 1 
    
    if (chute == numeroSecreto){
                let palavraTentativa = numeroTentativas > 1 ? 'tentativas' : 'tentativa'
        let mensagemTentativas = (`Você acertou com ${numeroTentativas} ${palavraTentativa}`)  
            exibirTextoNaTela('h1', 'Você acertou meu jovem');
        exibirTextoNaTela('p', mensagemTentativas)
        
        
    } else if (chute < numeroSecreto)
    exibirTextoNaTela('p', 'O número secreto é maior');
    
    else {
        exibirTextoNaTela('p', 'O número secreto é menor')
          }
          numeroTentativas++
          
    }

Olá Estudante , muito obrigado, você resolveu a questão... ! Tudo é muito novo pra mim , cometerei alguns gafes no decorrer do curso ainda kkkk