Article image
Lucas Morais
Lucas Morais22/06/2025 13:00
Compartilhe

🚀 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! 🚀

    Compartilhe
    Comentários (0)