🚀 Desafio Concluído: Classificador de Nível de Herói no Bootcamp da DIO.me! 🛡️
🚀 Desafio Concluído: Classificador de Nível de Herói no Bootcamp da DIO.me! 🛡️Olá, comunidade DIO! 🌟 Acabei de finalizar mais um desafio prático do Bootcamp da DIO.me, e estou empolgado para compartilhar com vocês o resultado! Este projeto não só reforçou minha base em lógica de programação, mas também me permitiu praticar boas práticas de codificação, organização de projetos e integração com GitHub usando o Termux. Vamos mergulhar nos detalhes? 👇
.
.
📌 O Projeto: Classificador de Nível de HeróiO desafio consistia em criar um algoritmo que classifica um herói com base em sua quantidade de experiência (XP), atribuindo um nível que varia de Ferro a Radiante. Utilizei JavaScript para implementar a solução, aplicando conceitos fundamentais de programação de forma clara e eficiente.🎯 Objetivo do ProjetoSolicitar o nome e a quantidade de XP do herói.Classificar o herói em um dos seguintes níveis, com base no XP:Ferro: XP < 1.000Bronze: 1.001 ≤ XP ≤ 2.000Prata: 2.001 ≤ XP ≤ 5.000Ouro: 5.001 ≤ XP ≤ 7.000Platina: 7.001 ≤ XP ≤ 8.000Ascendente: 8.001 ≤ XP ≤ 9.000Imortal: 9.001 ≤ XP ≤ 10.000Radiante: XP ≥ 10.001Exibir uma mensagem no formato: "O Herói de nome {nome} está no nível de {nivel}".
.
.
💻 Tecnologias e Conceitos UtilizadosPara desenvolver o projeto, utilizei as seguintes ferramentas e conceitos:JavaScript:Variáveis: Para armazenar o nome e XP do herói.Operadores: Para realizar comparações lógicas nas faixas de XP.Estruturas condicionais: Uso de if, else if e else para determinar o nível do herói.Entrada de dados: Implementei com prompt (para execução no navegador) e validação de entrada.Organização do Projeto:Estruturei o repositório com pastas claras: src/ (código-fonte), docs/ (documentação) e um README.md detalhado.Documentei o propósito, a execução e a motivação do projeto.Git e GitHub:Configurei um repositório no GitHub usando autenticação SSH no Termux (um terminal Linux para Android).Automatizei a criação do repositório, pastas e arquivos com um script Bash, garantindo um fluxo de trabalho eficiente.Boas Práticas:Código legível com comentários explicativos.Validação de entrada para garantir que o XP seja um número válido.Mensagens de saída claras e formatadas.🛠 Como o Projeto Foi ConstruídoCódigo JavaScript (src/classificador_heroi.js)Aqui está o código principal do desafio, implementado em JavaScript:
// Desafio Classificador de Nível de Herói
// Objetivo: Classificar o nível de um herói com base na sua experiência (XP)
// Entrada de dados
let nome = prompt("Digite o nome do herói:");
let xp;
while (true) {
xp = prompt("Digite a quantidade de experiência (XP) do herói:");
xp = parseInt(xp);
if (!isNaN(xp)) {
break;
}
alert("Por favor, digite um número válido para XP.");
}
// Estrutura de decisão para determinar o nível
let nivel;
if (xp < 1000) {
nivel = "Ferro";
} else if (xp >= 1001 && xp <= 2000) {
nivel = "Bronze";
} else if (xp >= 2001 && xp <= 5000) {
nivel = "Prata";
} else if (xp >= 5001 && xp <= 7000) {
nivel = "Ouro";
} else if (xp >= 7001 && xp <= 8000) {
nivel = "Platina";
} else if (xp >= 8001 && xp <= 9000) {
nivel = "Ascendente";
} else if (xp >= 9001 && xp <= 10000) {
nivel = "Imortal";
} else {
nivel = "Radiante";
}
// Saída
alert(`O Herói de nome ${nome} está no nível de ${nivel}`);
console.log(`O Herói de nome ${nome} está no nível de ${nivel}`);
Como executar:Abra o arquivo index.html vinculado ao classificador_heroi.js em um navegador.Insira o nome e o XP do herói nos prompts exibidos.Veja o resultado em um alerta e no console do navegador.Exemplo de HTML (index.html)Para facilitar a execução, criei um arquivo HTML simples que inclui o script:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Classificador de Nível de Herói</title>
</head>
<body>
<h1>Classificador de Nível de Herói</h1>
<p>Abra o console do navegador (F12) para ver o resultado.</p>
<script src="src/classificador_heroi.js"></script>
</body>
</html>
Automação com Script Bash no TermuxPara configurar o repositório no GitHub, desenvolvi um script Bash que automatiza todo o processo no Termux:Autenticação SSH: Configura o agente SSH e adiciona a chave privada.Criação do repositório: Usa o gh (GitHub CLI) para criar o repositório remoto.Estrutura de pastas: Cria as pastas src/ e docs/.Geração de arquivos: Cria o classificador_heroi.js, README.md e docs/sobre.md.Commit e push: Adiciona os arquivos ao Git e faz o push para o GitHub.Exemplo do script Bash (setup_project.sh):
#!/bin/bash
# Configurar variáveis do projeto
PROJECT_NAME="classificador-nivel-heroi"
GITHUB_USER="Lalalucas"
PROJECT_DIR="$HOME/$PROJECT_NAME"
# Configurar SSH
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
ssh -T git@github.com
# Criar diretório e repositório
mkdir -p $PROJECT_DIR/src $PROJECT_DIR/docs
cd $PROJECT_DIR
git config --global init.defaultBranch main
[ -d ".git" ] || git init
# Criar classificador_heroi.js
cat <<'EOL' > src/classificador_heroi.js
// Código JavaScript acima
EOL
# Criar README.md
cat <<'EOL' > README.md
# Classificador de Nível de Herói
...
EOL
# Criar documentação
cat <<'EOL' > docs/sobre.md
# Sobre o Projeto
...
EOL
# Configurar repositório remoto
if gh repo view $GITHUB_USER/$PROJECT_NAME > /dev/null 2>&1; then
git remote set-url origin git@github.com:$GITHUB_USER/$PROJECT_NAME.git
else
gh repo create $PROJECT_NAME --public --source=. --remote=origin
fi
# Commit e push
git add .
git commit -m "Inicialização do projeto Classificador de Nível de Herói"
git branch -M main
git push -u origin main
🔗 Confira o Projeto no GitHub!O projeto está hospedado no meu repositório GitHub, com toda a documentação e estrutura organizadas:👉 github.com/Lalalucas/classificador-nivel-heroiSinta-se à vontade para dar uma estrela ⭐, fazer um fork ou sugerir melhorias!💡 O Que Aprendi com Esse DesafioEsse projeto foi uma oportunidade incrível para consolidar conhecimentos e desenvolver novas habilidades:Lógica de programação: Aprofundei meu entendimento sobre estruturas condicionais e validação de dados em JavaScript.Boas práticas: Aprendi a importância de um código legível, bem comentado e organizado.Versionamento: Pratiquei o uso do Git e GitHub, incluindo autenticação SSH e automação com scripts.Portfólio: Adicionei um projeto prático ao meu GitHub, que posso apresentar em entrevistas técnicas.Produtividade no Termux: Configurar um ambiente de desenvolvimento no celular com Termux foi desafiador, mas extremamente recompensador!🌟 Por Que Esse Projeto é Importante?Projetos como o Classificador de Nível de Herói são essenciais para qualquer pessoa que está começando na programação. Eles reforçam a base lógica que sustenta qualquer linguagem ou tecnologia. Além disso, organizar o projeto em um repositório bem documentado no GitHub é uma habilidade valiosa para demonstrar profissionalismo e competência técnica.🚀 Próximos PassosEstou animado para continuar minha jornada no Bootcamp da DIO.me! Algumas ideias para evoluir este projeto incluem:Adicionar um laço de repetição para classificar múltiplos heróis em uma única execução.Criar uma interface gráfica com HTML e CSS para tornar o projeto mais interativo.Implementar testes unitários com Jest para validar a lógica de classificação.Explorar outras linguagens (como Python ou Java) para comparar abordagens.🗣️ Vamos Conversar?Gostaria de ouvir a opinião de vocês! 👥O que acharam do projeto?Têm sugestões de melhorias ou outros desafios semelhantes?Como estão evoluindo nos seus estudos na DIO?Deixem seus comentários, e vamos trocar experiências! 🚀#DIO #Bootcamp #LogicaDeProgramacao #JavaScript #Desenvolvimento #Projeto #Aprendizado #GitHubNotas para PublicaçãoAjuste no repositório:O repositório atual (https://github.com/Lalalucas/classificador-nivel-heroi) contém a versão em Python. Para alinhar com o artigo, você precisará atualizar o repositório com a versão em JavaScript. Use o script Bash acima para recriar o repositório ou atualize manualmente:cd ~/classificador-nivel-heroi
rm src/classificador_heroi.py
# Crie src/classificador_heroi.js com o código JavaScript
# Crie index.html
git add .
git commit -m "Atualização para versão JavaScript"
git push origin mainTeste local:Antes de publicar, teste o código JavaScript:Crie os arquivos index.html e src/classificador_heroi.js localmente.Abra o index.html em um navegador para confirmar que os prompts e alertas funcionam.Verifique o console (F12) para a saída.Engajamento na DIO:Poste o artigo no LinkedIn e no fórum da DIO, mencionando o Bootcamp específico (por exemplo, "Bootcamp Santander" ou "Bootcamp DIO JavaScript").Inclua capturas de tela do programa rodando ou do repositório para aumentar o impacto visual.Melhorias sugeridas:Para tornar o projeto mais interativo, considere adicionar um formulário HTML para entrada de dados em vez de prompt. Exemplo:<form onsubmit="classificarHeroi(event)">
<input type="text" id="nome" placeholder="Nome do herói" required>
<input type="number" id="xp" placeholder="XP" required>
<button type="submit">Classificar</button>
</form>
<p id="resultado"></p>
<script>
function classificarHeroi(event) {
event.preventDefault();
let nome = document.getElementById("nome").value;
let xp = parseInt(document.getElementById("xp").value);
let nivel;
if (xp < 1000) nivel = "Ferro";
// ... (lógica de classificação)
document.getElementById("resultado").textContent = `O Herói de nome ${nome} está no nível de ${nivel}`;
}
</script>Se precisar de ajuda para atualizar o repositório, criar o formulário HTML, ou ajustar o artigo para outro formato (por exemplo, mais técnico ou mais descontraído), é só me avisar! 🚀