Sistema completo para gerenciamento de jogadores e execução de
jogos clássicos, desenvolvido em C++11 com documentação Doxygen.
đź“‹ Tabela de ConteĂşdos
- ✨ Funcionalidades
- 🏗️ Arquitetura do Sistema
- 🛠️ Instalação e Uso
- 📚 Documentação
- 🎯 Dificuldades e Soluções
- 📄 Licença
✨ Funcionalidades
đź§‘đź’» Sistema de Jogadores
- Cadastro/remoção de jogadores com apelido único.
- Listagem detalhada com estatĂsticas por jogo.
- PersistĂŞncia em arquivo texto.
🎲 Jogos Implementados
|
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
|
📊 EstatĂsticas
- HistĂłrico individual por jogador.
- VitĂłrias/derrotas por tipo de jogo.
🏗️ Arquitetura do Sistema
📦 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
🛠️ Instalação e Uso
Requisitos
- Compilador C++11 (g++ ou Clang).
- Doxygen (para documentação).
- Make (opcional, facilita compilação).
Compilação
git clone https://github.com/mateusacq/tp_pds2
make all
Execução
Gerar Documentação
doxygen Doxyfile
# Acesse docs/html/index.html
📚 Documentação
🔗 Acesse a Documentação Completa
🎯 Dificuldades e
Soluções
| 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++ |
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo
[LICENSE](LICENSE) para detalhes.
Desenvolvido por Felipe Damasceno, Caio Onofre, Mateus
Antinossi e Emmanuel Figueiredo