Skip to content

Projeto de jogo RPG em Java usando CLI como case do Desafio Acelera ZG 8.0

Notifications You must be signed in to change notification settings

AugustoSodre/RPG-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

Desafio Acelera ZG 8.0 - RPG Sandubinha

Sobre o Jogo

RPG Sandubinha é um jogo de RPG baseado em texto desenvolvido em Java, onde você controla Sandubinha em sua épica jornada para derrotar o terrível Glozium e salvar o mundo. O jogo apresenta um sistema de combate único baseado em números aleatórios e uma variedade de itens mágicos com mecânicas especiais.

Como Jogar

Sistema de Combate

  • O combate é baseado em números secretos aleatórios
  • Cada personagem possui um número secreto (de 1 até sua vida máxima)
  • Para causar dano, você precisa "acertar" o número secreto do inimigo
  • O dano causado é: número secreto × quantidade de acertos + bônus

Controles

  • Números (1, 2, 3...): Selecionar opções do menu
  • Q: Desistir do combate ou sair do jogo
  • Enter: Confirmar ações

Itens Especiais

  • 🏹 Estilingue Mágico: Único item capaz de atingir inimigos voadores
  • 🛡️ Placa: Causa dano extra, mas falhar dá bônus ao inimigo
  • 🧙‍♂️ Pergaminho: Aumenta chances de acerto
  • 👘 Azah Transmissão (Capa): Permite voo e ataques especiais
  • 📿 Colar da Estátua Sagrada: Item poderoso com efeitos únicos
  • ⚔️ Espada: Arma de alto dano

🗺️ Cenários da Jornada

  1. 🌲 Floresta do Atendimentus - O primeiro desafio de Sandubinha
  2. 🕳️ Cavernas de Faturamentus - Misteriosas cavernas subterrâneas
  3. 🏘️ Vila da Transmissão - Vila mágica com habitantes amigáveis
  4. 🏰 Torre de Contas a Receber - A terrível torre onde o mal se concentra
  5. 💀 Batalha Contra Glozium - O confronto final épico

⚙️ Requisitos do Sistema

  • Java 8 ou superior
  • Terminal/Console para execução
  • Sistema operacional: Windows, Linux ou macOS

Como Executar

Compilação

mvn compile

Execução

mvn exec:java -Dexec.mainClass="main.Main"

Modo Desenvolvedor

Para ativar o modo de testes, descomente as linhas no arquivo Main.java:

// ModoDev modoDev = new ModoDev();
// modoDev.executar();

Estrutura do Projeto

src/
├── main/
│   └── Main.java                 # Classe principal
├── menu/
│   ├── Menu.java                 # Sistema de menus
│   └── TelaCarregamento.java     # Tela de loading
├── entidades_combate/
│   ├── Jogador.java              # Classe do jogador
│   ├── Inimigo.java              # Classe dos inimigos
│   ├── Personagem.java           # Classe base para personagens
│   ├── Batalha.java              # Sistema de batalha
│   └── Rodada.java               # Lógica das rodadas
├── atos/
│   ├── AtosAbstract.java         # Classe base para cenários
│   ├── Ato_01.java               # Floresta do Atendimentus
│   ├── Ato_02.java               # Cavernas de Faturamentus
│   ├── Ato_03.java               # Vila da Transmissão
│   ├── Ato_04.java               # Torre de Contas a Receber
│   └── Ato_05.java               # Batalha Final
├── itens/
│   └── Item.java                 # Sistema de itens
├── falas/
│   ├── ColoreFala.java           # Colore o nome dos personagens no diálogo
│   ├── FalaPersonagem.java       # Diálogos dos personagens
│   ├── FalaNarrador.java         # Narração do jogo
│   ├── PausaFala.java            # Efeitos de texto
│   └── LimpaTela.java            # Limpeza do console
├── reset/
│   ├── Reset.java                # Reset das fases e vida do jogador
└── entidades_gerais/
    ├── InputDecisao.java         # Gerenciamento de input
    └── ModoDev.java              # Modo desenvolvedor

Características Técnicas

Mecânicas Especiais

  • Sistema de Vida Dinâmica: A vida máxima aumenta conforme você progride
  • Inimigos Voadores: Requerem estratégias específicas para serem derrotados
  • Sistema de Inventário: Coleta e uso estratégico de itens
  • Consequências de Ações: Errar ataques pode ter penalidades

Padrões de Design Utilizados

  • Herança: Classes Personagem, Jogador e Inimigo
  • Polimorfismo: Sistema de Atos com AtosAbstract
  • Encapsulamento: Métodos privados e getters/setters
  • Singleton Pattern: Gerenciamento de estado do jogo

Problemas Conhecidos

  • Alguns textos podem aparecer muito rapidamente em alguns terminais
  • O modo desenvolvedor requer alteração manual do código

About

Projeto de jogo RPG em Java usando CLI como case do Desafio Acelera ZG 8.0

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages