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

[Dúvida] Implementando a lista - erro ao implementar, não aparece no console

estava revisando o código com o do vídeo e não achei o erro, estou tentando armazenar os números sorteados dentro da lista, mas eles não aparecem no console. segue código que estou replicando e imagem do erro:

Código:

let listaNumerosSorteados = [];
let numeroSecreto = 5;
let tentativas = 1;
//forma reduzida
function exibirTextoNaTela(tag, texto){
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
}
function exibirMensagemInicial(){
    exibirTextoNaTela('h1','Jogo do número secreto')
    exibirTextoNaTela('p','Escolha um número entre 1 e 10')
}
exibirMensagemInicial();
//criando funções
function verificarChute(){
    let chute = document.querySelector('input').value;
    if(chute == numeroSecreto){
        exibirTextoNaTela('h1', 'Acertou!');
        let palavraTentativas = tentativas > 1 ? 'tentativas': 'tentativa';
        let mensagemTentativas = `Você descobriu o numero secreto com ${tentativas} ${palavraTentativas}!`;
        exibirTextoNaTela('p', mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    }else{
        if(chute < numeroSecreto){
            exibirTextoNaTela('p', `O número secreto é maior que ${chute}`);
        }else{
            exibirTextoNaTela('p', `O número secreto é menor que ${chute}`);
        }
        tentativas++;
        limparCampo();
    }
}

function gerarNumeroAleatorio() {
    let numeroEscolhido = parseInt(Math.random() * 4 + 1);
    //includes = verifica se o número está na lista
    if(listaNumerosSorteados.includes(numeroEscolhido)){
        return gerarNumeroAleatorio();  
    }else{
        listaNumerosSorteados.push(numeroEscolhido); 
        console.log(listaNumerosSorteados);
        return numeroEscolhido;
    }
    //push = adiciona item ao final da lista
}
function limparCampo(){
    chute = document.querySelector('input');
    chute.value = '';
}
function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Jamile, tudo bem?

Parece que o problema pode estar na chamada da função gerarNumeroAleatorio(). No trecho de código que você forneceu, a função gerarNumeroAleatorio() é chamada apenas na função reiniciarJogo(), que é acionada quando o botão de reiniciar é clicado.

Para resolver esse problema, você pode chamar a função gerarNumeroAleatorio() também no início do seu script ou em algum ponto antes da primeira tentativa de chute. Assim, os números sorteados serão adicionados à lista antes de começar o jogo. Pode fazer algo assim:

// Chamar a função para gerar um número aleatório antes do jogo começar
gerarNumeroAleatorio();

function exibirMensagemInicial(){
    exibirTextoNaTela('h1','Jogo do número secreto')
    exibirTextoNaTela('p','Escolha um número entre 1 e 10')
}
exibirMensagemInicial();
// Restante do código...

Dessa forma, ao iniciar o jogo, um número aleatório será gerado e adicionado à lista listaNumerosSorteados, e a função verificarChute() poderá acessar a lista ao comparar os chutes do usuário com o número secreto.