Skip to content

DataCaio/tp_pds2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Trabalho Prático PDS2 - Sistema de Jogos

C++ Version
License
Documentation

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.

Menu Do Jogo

📋 Tabela de Conteúdos

✨ Funcionalidades

🧑💻 Sistema de Jogadores

  • Cadastro/remoção de jogadores com apelido único.
  • Listagem detalhada com estatísticas por jogo.
  • Persistência em arquivo texto.

Seletor de temas

  • Cinco temas personalizados
  • Cada tema tem sua cor personalizada

🎲 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

./bin/main

Gerar Documentação

doxygen Doxyfile
# Acesse docs/html/index.html

📚 Documentação

🔗 Acesse a Documentação Completa [🔗 Acesse os cartões CRCs] (https://drive.google.com/file/d/1-WVXUqHAeo9sjuOqbVhF7rxSqzobI_6D/view?usp=share_link)

🎯 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 para detalhes.


Desenvolvido por Felipe Damasceno, Caio Onofre, Mateus Antinossi e Emmanuel Figueiredo

About

Game manager project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 99.8%
  • Makefile 0.2%