Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Desafio: hora da prática.

Eu já havia feito todos os passos em aula junto com os instrutores, inclusive dando permissões entre as ferramentas git, github e vs code. Executei tudo na aula com os instrutores, subi o outro desafio no fórum e nesse estava um pouco em dúvida se podia reaproveitar o que já tinha sido feito (imagino que sim) com algumas alterações que foram solicitadas na resolução deste. Não sei se o meu desafio está correto, podem me corrigir se for o caso.
https://github.com/lucasgrun19/allura-x-oracle-project/tree/main/3386-git-github-projeto_inicial

1 resposta

Fala, Lucas! Tudo bom?

Agradeço por trazer seu projeto para o fórum!

Curti demais como explorou o Math.random para gerar números aleatórios com JavaScript, compreendeu perfeitamente a importância da condição para dar dicas ao jogador e utilizou bem o array para controlar os números já sorteados.

Algo bem legal para complementar é validar o chute do usuário antes de comparar com o número secreto. Dessa maneira:

function verificarChute() {
    let chute = parseInt(document.querySelector('input').value);

    if (isNaN(chute) || chute < 1 || chute > numeroLimite) {
        exibirTextoNaTela('p', `Digite um número válido entre 1 e ${numeroLimite}`);
        limparCampo();
        return;
    }

    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 {
        exibirTextoNaTela('p', chute > numeroSecreto ? 'O número secreto é menor' : 'O número secreto é maior');
        tentativas++;
        limparCampo();
    }
}

Isso faz com que entradas inválidas sejam tratadas e o jogo fique mais robusto.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Separação de lógica: manter funções pequenas e específicas.
  • Feedback claro: mensagens que orientem o jogador de forma objetiva.
  • Reutilização: centralizar cálculos e validações em funções reaproveitáveis.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: você prefere deixar o jogo com dicas de "maior" ou "menor", ou tornar o desafio mais difícil sem dar nenhuma pista?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!