Oii, Eduardo!
É muito bom ver como você estruturou o seu pensamento para resolver esse desafio.
Você tocou em um ponto fundamental no desenvolvimento: problemas que parecem grandes se tornam simples quando os dividimos em partes menores. Essa é a base de um código bem organizado.
Gostei bastante da sua iniciativa de adicionar uma camada de validação no início da função realizarSorteio. Verificar se o dado é um array e se há um número mínimo de participantes traz mais segurança para a execução do script.
Notei alguns pontos que podem ajudar a deixar sua lógica ainda mais precisa, seguindo as regras de negócio propostas na atividade:
- Regras de pontuação: No seu
if/else, a mensagem "Você quase conseguiu!" está sendo exibida apenas para quem tem exatamente entre 51 e 80 pontos. O enunciado pedia que quem tivesse 50 pontos também recebesse essa mensagem. No seu código atual, quem tem 50 cai no "infelizmente, não foi dessa vez". - Atraso no feedback: Na saída esperada, o sistema exibe "Sorteando..." imediatamente e depois de 2 segundos mostra o resultado. No seu código, o console fica em branco durante o tempo de espera. Adicionar um
console.log("Sorteando...") antes do setTimeout ajuda na experiência de quem usa o sistema.
Pra alinhar as faixas de pontuação com o que foi pedido, você pode ajustar as condições desta forma:
function avaliaPontuacao(sorteado) {
if (sorteado.pontuacao > 80) {
return "Parabéns, você foi premiado!";
} else if (sorteado.pontuacao >= 50) { // Inclui o 50 aqui
return "Você quase conseguiu! Fique de olho nos próximos sorteios.";
} else {
return "Infelizmente, não foi dessa vez.";
}
}
E na função de exibir, para criar aquele clima de suspense:
function exibeSorteado(participante, avaliacao) {
console.log("Sorteando..."); // Feedback imediato
setTimeout(() => {
console.log(`Participante sorteado: ${participante.nome}`);
console.log(`Pontuação: ${participante.pontuacao}`);
console.log(avaliacao);
}, 2000);
}
Continue praticando essa quebra de problemas em funções menores, pois isso ajuda muito na leitura do código por outras pessoas da equipe.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!