Minha Jornada Criando o Projeto: Nível do Herói
Desde que comecei a estudar JavaScript, venho buscando pequenos desafios para aprimorar minhas habilidades. Foi assim que cheguei ao projeto Nível do Herói, proposto no curso de lógica de programação da DIO. O objetivo era simples: classificar um herói com base na sua experiência (XP). Parece um problema trivial, mas ao longo do desenvolvimento, aprendi bastante sobre estruturas condicionais, variáveis e lógica de programação.
Neste artigo, compartilho o meu processo de pensamento e as etapas que percorri até chegar à versão final do código.
O Começo da Ideia
O primeiro passo foi entender o que o programa deveria fazer. Ele precisava pegar a quantidade de experiência de um herói e, com base nisso, determinar seu nível de classificação. Para isso, eu precisaria:
- Criar uma variável para armazenar o nome do herói;
- Criar outra variável para armazenar a quantidade de XP;
- Determinar as faixas de classificação com base no XP;
- Utilizar alguma estrutura de controle para definir o nível do herói;
- Exibir o resultado no console.
Com isso em mente, comecei a escrever o código.
Estruturando o Código
Definindo as Variáveis
Comecei declarando três variáveis principais:
let nome = "Conan";
let xp = 9500;
let nivel = "";
Aqui, nome
armazena o nome do herói, xp
a experiência adquirida e nivel
será preenchida posteriormente de acordo com as regras definidas.
Escolhendo a Estrutura de Controle
A próxima decisão foi escolher a melhor forma de classificar o nível do herói com base na XP. Eu poderia usar um if...else if
, mas optei pelo switch case
, pois ele me permitiria uma leitura mais organizada das condições.
Comecei a listar as faixas de XP que determinam os níveis do herói:
- XP até 1000 → Ferro
- XP entre 1001 e 2000 → Bronze
- XP entre 2001 e 5000 → Prata
- XP entre 5001 e 7000 → Ouro
- XP entre 7001 e 8000 → Platina
- XP entre 8001 e 9000 → Ascendente
- XP entre 9001 e 10000 → Imortal
- XP acima de 10000 → Radiante
Com isso em mente, implementei o switch case
:
switch (true) {
case xp <= 1000:
nivel = "Ferro";
break;
case xp > 1001 && xp <= 2000:
nivel = "Bronze";
break;
case xp >= 2001 && xp <= 5000:
nivel = "Prata";
break;
case xp >= 5001 && xp <= 7000:
nivel = "Ouro";
break;
case xp >= 7001 && xp <= 8000:
nivel = "Platina";
break;
case xp >= 8001 && xp <= 9000:
nivel = "Ascendente";
break;
case xp >= 9001 && xp <= 10000:
nivel = "Imortal";
break;
case xp > 10000:
nivel = "Radiante";
break;
}
Essa estrutura verifica a quantidade de XP e define a variável nivel
de acordo com a classificação.
Exibindo o Resultado
Por fim, para que o usuário possa ver a saída do programa, adicionei um console.log()
que exibe a mensagem com o nome do herói e seu respectivo nível:
console.log("O herói de nome " + nome + " está no nível de " + nivel);
Agora, ao rodar o código, a saída será:
O herói de nome Conan está no nível de Imortal
Desafios e Aprendizados
Durante a implementação, percebi alguns detalhes que precisavam ser ajustados:
- Ordem das condições: Inicialmente, escrevi algumas faixas de XP de forma incorreta, o que fazia com que certos valores caíssem na condição errada.
- Uso correto do
switch case
: Como eu precisava comparar intervalos numéricos, precisei usarswitch (true)
, algo que eu não conhecia antes. - Formatação da saída: Para deixar o código mais legível, testei diferentes formas de interpolação de strings e concatenação.
Cada um desses pequenos desafios me ajudou a entender melhor o funcionamento do JavaScript e me deixou mais confiante para enfrentar projetos maiores.
Conclusão
Criar o projeto Nível do Herói foi uma ótima experiência para consolidar conhecimentos em estruturas condicionais, manipulação de variáveis e saída de dados. Além disso, foi interessante perceber como um problema aparentemente simples pode ter diferentes soluções e desafios.
Agora, meu próximo passo é expandir esse código, talvez criando uma interface gráfica ou adicionando um sistema de progressão mais dinâmico.
Se você também está aprendendo JavaScript, recomendo que tente criar sua própria versão desse projeto e experimente novas abordagens! 🚀