Enums permitem criar tipos fixos e seguros, evitando valores inválidos e deixando o código mais limpo, organizado e poderoso — como um jutsu bem dominado! ⚔️🔥


🌟 1. Enum dos Níveis de Ninja

💡 Agora bem organizado, com ícones e comentários claros.

// Enum para os níveis de ninja com emojis para ficar mais estiloso
enum NivelNinja {
    GENIN,    // 🥷 Iniciante
    CHUNIN,   // 🥋 Intermediário
    JONIN,    // ⚔️ Experiente
    SENNIN,   // 🐸 Sábio / modo eremita
    HOKAGE    // 👑 Líder máximo da vila
}


🌟 2. Classe Ninja + Mensagens Temáticas

💬 Mensagens redesenhadas.

public class Ninja {

    private String nome;
    private NivelNinja nivel;

    public Ninja(String nome, NivelNinja nivel) {
        this.nome = nome;
        this.nivel = nivel;
    }

    public void exibirNivel() {
        System.out.print(nome + " — ");

        switch (nivel) {
            case GENIN:
                System.out.println("🥷 Você é um Genin. O caminho ninja está apenas começando.");
                break;
            case CHUNIN:
                System.out.println("🥋 Você é um Chunin. Um ninja confiável e promissor!");
                break;
            case JONIN:
                System.out.println("⚔️ Você é um Jonin. Um líder respeitado e altamente habilidoso.");
                break;
            case SENNIN:
                System.out.println("🐸 Você atingiu o nível Sennin! Sabedoria e poder se unem.");
                break;
            case HOKAGE:
                System.out.println("👑 Você é o Hokage! O protetor supremo da vila.");
                break;
        }
    }
}


🌟 3. Enum para Rank de Missões (com descrição e dificuldade)

💡 Aqui está perfeito! Apenas adicionei emojis nos comentários.

enum RankDeMissoes {

    D("Baixo", 2),        // 📦 Tarefas simples
    C("Moderado", 3),     // 🚶 Pequenas missões
    B("Confortável", 4),  // 🛡️ Risco controlado
    A("Difícil", 5),      // ⚔️ Perigosa
    S("Altíssimo", 12);   // 🔥 Missões para elite

    private final String descricao;
    private final int dificuldade;

    RankDeMissoes(String descricao, int dificuldade) {
        this.descricao = descricao;
        this.dificuldade = dificuldade;
    }

    public String getDescricao() {
        return descricao;
    }

    public int getDificuldade() {
        return dificuldade;
    }
}


🌟 4. Classe Missão com saída detalhada

🔍 Clareza e ícone no prefixo.

public class Missao {

    private String nome;
    private RankDeMissoes rank;

    public Missao(String nome, RankDeMissoes rank) {
        this.nome = nome;
        this.rank = rank;
    }

    public void exibirDetalhes() {
        System.out.println(
            "🚩 Missão: " + nome +
            " | Rank: " + rank +
            " | Descrição: " + rank.getDescricao() +
            " | Dificuldade: " + rank.getDificuldade()
        );
    }
}


🌟 5. Main testando tudo junto

public class Main {
    public static void main(String[] args) {

        // Criando ninjas
        Ninja naruto = new Ninja("Uzumaki Naruto", NivelNinja.HOKAGE);
        Ninja sasuke = new Ninja("Uchiha Sasuke", NivelNinja.JONIN);
        Ninja sakura = new Ninja("Haruno Sakura", NivelNinja.JONIN);
        Ninja jiraiya = new Ninja("Jiraiya", NivelNinja.SENNIN);

        // Mostrando níveis
        naruto.exibirNivel();
        sasuke.exibirNivel();
        sakura.exibirNivel();
        jiraiya.exibirNivel();

        System.out.println();

        // Criando missões
        Missao missao1 = new Missao("Resgatar Cachorro", RankDeMissoes.D);
        Missao missao2 = new Missao("Derrotar Zabuza", RankDeMissoes.A);
        Missao missao3 = new Missao("Proteger a Vila", RankDeMissoes.S);

        // Exibindo missões
        missao1.exibirDetalhes();
        missao2.exibirDetalhes();
        missao3.exibirDetalhes();
    }
}