4
respostas

Quando altero o codigo o jogo para de funcionar.

Seguindo a aula, no tópico: 04 -Limitando os números sorteados

Quando sigo a instrução e incluo a parte do código:

function gerarNumeroAleatorio() { let numeroEscolhido = parseInt(Math.random() * 3 + 1); let quantidadeDeElementosNalista = listaDeNumerosSorteados.length();

if (quantidadeDeElementosNaLista == 3) {
    listaDeNumerosSorteados = [];
    }

//código omitido

}

De cara o jogo para de funcionar:

Primeiro o texto Inicial desaparece e o jogo não funciona mais:

![Insira aqui a descrição dessa imagem para ajudar na acessibilidadeComo fica a tela do jogo

abaixo segue o codigo original (sem a alteração da aula):

let listaDeNumerosSorteados = []; let numeroSecreto = gerarNumeroAleatorio (); let tentativas = 1 ;

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

exibirMensagemInicial();

function exibirMensagemInicial() { 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', 'Acertou!'); let palavraTentativa = tentativas > 1 ? 'tentativas': 'tentativa'; let mensagemTentativas = Você descobriu o número secreto, com ${tentativas} ${palavraTentativa}; exibirTextoNaTela('p', mensagemTentativas); document.getElementById('reiniciar').removeAttribute('disabled'); } else { if (chute > numeroSecreto) { exibirTextoNaTela('p', 'O número secreto é menor'); } else { exibirTextoNaTela('p', 'O número secreto é maior'); } tentativas++;

            limparCampo()
        } 

}

function gerarNumeroAleatorio() { let numeroEscolhido = parseInt(Math.random() * 10 + 1);

//Aqui abaixo seria a parte do codigo novo inserido, assim que coloco dá logo problema:

*** let quantidadeDeElementosNalista = listaDeNumerosSorteados.length();

if (quantidadeDeElementosNaLista == 3) {
    listaDeNumerosSorteados = [];
    }***
        
if (listaDeNumerosSorteados.includes(numeroEscolhido)) {
    return gerarNumeroAleatorio();
} 
else {
    listaDeNumerosSorteados.push(numeroEscolhido);
    return numeroEscolhido;
}

}

function limparCampo() { chute = document.querySelector('input'); chute.value = ''; }

function reiniciarJogo() { numeroSecreto = gerarNumeroAleatorio(); limparCampo(); tentativas = 1; exibirMensagemInicial(); document.getElementById('reiniciar').setAttribute('disabled', true) }

4 respostas

Oi, Antonio!

Quando você diz:

"Seguindo a aula, no tópico: 04 -Limitando os números sorteados

Quando sigo a instrução e incluo a parte do código:

function gerarNumeroAleatorio() {
        let numeroEscolhido = parseInt(Math.random() * 3 + 1);
        let quantidadeDeElementosNalista = listaDeNumerosSorteados.length();

        if (quantidadeDeElementosNaLista == 3) {
            listaDeNumerosSorteados = [];
        }

        //código omitido
}

De cara o jogo para de funcionar:"

Não consegui entender direito o porquê o jogo para de funcionar, pois função não está completa, falta ver o restante do código dessa função para poder ajudar.

Poderia compartilhar o restante do código, por gentileza?

Uma dica, quando for colar código aqui na plataforma, busque usar a ferramenta </>, disponível aqui no painel de edição e cole todo o código dentro da abertura e fechamento dos acentos que a ferramenta insere na área de texto, pois facilita a leitura da sua solução e dá para analisar questões relacionadas a indentação do código (isso também pode dar problema e precisa ser analisado).

Abraços

Cara, tô aprendendo também, bem iniciante, mas tenta tirar o ( ) depois do length e vê se funciona

Verdade! Bem observado!

Boa tarde,

Comigo ocorreu o mesmo erro, e retirando o ( ) depois do length funcionou. Antes de retirar ele apresentava este erro no console:

app.js:40 Uncaught TypeError: listaDeNumerosSorteados.length is not a function at gerarNumeroAleatorio (app.js:40:64) at app.js:3:21

Alguém sabe o motivo de não poder estar com o ( ) após o length?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software