Sistema completo para gerenciamento de jogadores e execução de jogos clássicos para projeto final da disciplina Programação e Desenvolvimento de Software II da UFMG, desenvolvido em C++11 com documentação Doxygen.
- ✨ Funcionalidades
- 🏗️ Arquitetura do Sistema
- 🛠️ Instalação e Uso
- 📚 Documentação
- 🎯 Dificuldades e Soluções
- 📄 Licença
- Cadastro/remoção de jogadores com apelido único.
- Listagem detalhada com estatísticas por jogo.
- Persistência em arquivo texto.
- Cinco temas personalizados
- Cada tema tem sua cor personalizada
| Jogo | Tabuleiro | Modo de Vitória | Características Especiais |
|---|---|---|---|
| Jogo da Velha | 3x3 | Linha/Coluna/Diagonal | Detecção de empate |
| Connect4 | Variável | 4 em linha vertical/horizontal/diagonal | Sistema de colunas |
| Reversi | 8x8 | Contagem de peças | Mecânica de captura de peças |
- Histórico individual por jogador.
- Vitórias/derrotas por tipo de jogo.
📦 TP_PDS2
├── 📂 include
│ ├── Cadastro.hpp # Gerenciamento de jogadores (cabeçalho)
│ ├── Tabuleiro.hpp # Interface base de tabuleiro (cabeçalho)
│ ├── Jogo.hpp # Interface base para jogos (cabeçalho)
│ ├── GerenciadorDeJogos.hpp # Controlador principal (cabeçalho)
│ ├── Jogo_Da_Velha.hpp # Implementação do Jogo Da Velha (cabeçalho)
│ ├── Reversi.hpp # Implementação do Reversi (cabeçalho)
│ └── Connect4.hpp # Implementação do Connect 4 (cabeçalho)
├── 📂 src
│ ├── Cadastro.cpp # Gerenciamento de jogadores (implementação)
│ ├── Tabuleiro.cpp # Interface base de tabuleiro (implementação)
│ ├── Jogo.cpp # Interface base para jogos (implementação)
│ ├── GerenciadorDeJogos.cpp # Controlador principal (implementação)
│ ├── Jogo_Da_Velha.cpp # Implementação do Jogo Da Velha (implementação)
│ ├── Reversi.cpp # Implementação do Reversi (implementação)
│ ├── Connect4.cpp # Implementação do Connect 4 (implementação)
│ └── main.cpp # Executor do programa
├── 📂 gamedata
│ └── logs_jogadores.txt # Banco de dados de jogadores
├── 📂 bin
│ └── main.exe # Executável
├── Makefile # Instruções de compilação
- Compilador C++11 (g++ ou Clang).
- Doxygen (para documentação).
- Make (opcional, facilita compilação).
git clone https://github.com/mateusacq/tp_pds2
make all./bin/maindoxygen Doxyfile
# Acesse docs/html/index.html🔗 Acesse a Documentação Completa [🔗 Acesse os cartões CRCs] (https://drive.google.com/file/d/1-WVXUqHAeo9sjuOqbVhF7rxSqzobI_6D/view?usp=share_link)
| Desafio | Solução Implementada | Tecnologia Utilizada |
|---|---|---|
| Persistência de dados | Serialização em arquivo texto | Streams C++ |
| Validação de jogadas complexas | Padrão Strategy | Polimorfismo |
| Interface genérica para jogos | Classe base abstrata | Herança em C++ |
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
Desenvolvido por Felipe Damasceno, Caio Onofre, Mateus Antinossi e Emmanuel Figueiredo
