O Simulador de Missões - To Cruz é uma aplicação desenvolvida em Java que simula missões baseadas em mapas com diversas divisões interconectadas. O jogador controla o personagem To Cruz, que deve explorar o mapa, derrotar inimigos, coletar itens e resgatar o alvo designado, retornando com sucesso a uma divisão de saída.
O projeto inclui:
- Simulação Manual: O jogador toma decisões, controlando os movimentos e ações do To Cruz.
- Simulação Automática: O sistema calcula e executa o melhor caminho com base nos recursos disponíveis.
- Aplicar conceitos de estruturas de dados, grafos e algoritmos de busca.
- Simular missões com cenários reais de exploração, combate e estratégia.
- Implementar soluções para movimentação, combate automático, inventário e interação com o mapa.
- Permite ao jogador tomar decisões sobre os movimentos e ações do personagem To Cruz.
- Comandos disponíveis:
- Mover: Escolher uma divisão adjacente para se mover.
- Atacar: Enfrentar os inimigos na divisão atual.
- Usar: Utilizar kits de vida disponíveis no inventário.
- Sair: Encerrar a simulação manual.
- O sistema calcula o melhor caminho para o objetivo e saída usando algoritmos de busca em grafos.
- Garante que os inimigos sejam derrotados e os itens sejam coletados para maximizar a sobrevivência.
- Sistema de inventário para armazenar itens coletados (kits de vida, coletes).
- Utilização estratégica de itens para recuperação de vida durante a simulação.
- Sistema de combate que envolve inimigos com diferentes níveis de poder.
- Tó Cruz ataca primeiro, e o sistema gerencia os danos causados.
- Os mapas são carregados a partir de ficheiros JSON configuráveis.
- O jogador pode interagir com divisões, conexões, inimigos e itens.
- Java SE: Linguagem de programação principal.
- Gradle: Ferramenta de build e gerenciamento de dependências.
- JUnit 5: Framework de testes unitários.
- SLF4J: Logging.
- JSON Simple: Processamento de ficheiros JSON.
- Estruturas de Dados: Implementação de listas, filas, pilhas e grafos.
- Java Development Kit (JDK) 11 ou superior.
- Gradle 6.x ou superior (pode ser utilizado o wrapper incluído no projeto).
git clone https://github.com/teu-usuario/simulador-missoes-to-cruz.git
cd simulador-missoes-to-cruz
Utiliza o Gradle Wrapper para compilar o projeto:
./gradlew build
Para sistemas Windows:
gradlew.bat build
./gradlew runManual
./gradlew runAuto
Executa os testes com JUnit 5:
./gradlew test
src/
│── main/
│ ├── java/
│ │ ├── org/example/api/ # Interfaces e exceções
│ │ ├── org/example/impl/ # Implementações principais
│ │ ├── org/example/models/ # Classes de modelo (ToCruz, Inimigos, etc.)
│ │ ├── org/example/simulation/ # Simulação manual e automática
│ │ └── org/example/utils/ # Utilitários para JSON e exportação
│ └── resources/
│ ├── test_map.json # Ficheiro JSON de exemplo
│ ├── invalid_structure.json # Estrutura inválida para testes
│ ├── missing_division.json # JSON com divisão inexistente
│ └── invalid_field.json # JSON com campo inválido
│
└── test/
├── java/
│ ├── org/example/test/ # Testes unitários JUnit
└── resources/ # Ficheiros JSON para testes
{
"cod-missao": "pata de coelho",
"versao": 1,
"edificio": ["Entrada", "Objetivo", "Saida"],
"ligacoes": [["Entrada", "Objetivo"], ["Objetivo", "Saida"]],
"inimigos": [{"nome": "Inimigo1", "poder": 30, "divisao": "Objetivo"}],
"entradas-saidas": ["Entrada", "Saida"],
"alvo": {"divisao": "Objetivo", "tipo": "quimico"},
"itens": [{"divisao": "Objetivo", "pontos-recuperados": 20, "tipo": "kit de vida"}]
}
Os testes unitários abrangem os seguintes casos:
- Validação do carregamento de mapas a partir de ficheiros JSON.
- Comportamento de simulação manual e automática.
- Detecção de cenários de erro, como divisões ou campos inválidos no ficheiro JSON.
Para executar os testes:
./gradlew test
Made with ☕ and 💜:
Alice Dias |
Benicio Sanca |