Um jogo de Truco completo desenvolvido em Java com interface gráfica Swing, criado como projeto de estudo em dupla.
Este é um projeto pessoal desenvolvido com fins educacionais para aprender e praticar conceitos de programação orientada a objetos, interface gráfica e persistência de dados em Java.
- Interface moderna e intuitiva usando Java Swing
- Visualização das cartas na mão do jogador
- Placar em tempo real
- Histórico de jogadas
- Botões para ações do jogo (Truco, Aceitar, Recusar)
- Sistema de Turnos: Rotação automática entre jogadores
- Sistema de Cartas: Baralho completo com 44 cartas (sem 8 e 9)
- Manilhas: Implementação correta das manilhas do Truco
- Sistema de Pontuação: Controle de pontos por equipe
- Truco, Seis, Nove, Doze: Sistema completo de apostas
- Conexão com banco de dados MySQL
- Salvamento automático de partidas
- Histórico de rodadas e jogadas
- Estatísticas de jogadores
- Model: Classes de domínio (Partida, Jogador, Carta, etc.)
- View: Interface gráfica (TrucoGUI)
- Service: Lógica de negócio (GerenciadorJogo, RegrasTruco)
- DAO: Acesso a dados (ConexaoDAO)
- Java 17
- Java Swing - Interface gráfica
- MySQL - Banco de dados
- Maven - Gerenciamento de dependências
- JDBC - Conexão com banco de dados
- Java 17 ou superior
- Maven 3.6+
- MySQL 8.0+
- IDE de sua preferência (IntelliJ IDEA, Eclipse, VS Code)
git clone https://github.com/CaduBraga/truco-java.git
cd truco-javaJava
java -versionMaven
mvn -versionMySQL
mysql --version- Iniciar o MySQL:
# Windows
net start mysql
# Linux/macOS
sudo systemctl start mysql
# ou
brew services start mysql- Criar banco de dados:
CREATE DATABASE truco_db;
USE truco_db;- Executar script SQL:
mysql -u root -p truco_db < src/main/resources/truco_database.sqlEdite o arquivo src/br/com/truco/database/conexao/Conexao.java com suas credenciais:
private static final String URL = "jdbc:mysql://localhost:3306/truco_db";
private static final String USER = "seu_usuario";
private static final String PASSWORD = "sua_senha";Windows
run.batLinux/macOS
./run.sh# Compilar o projeto
mvn clean compile
# Executar o jogo
mvn exec:java -Dexec.mainClass="br.com.truco.main.Main"- Inicie o jogo - O jogo criará automaticamente 4 jogadores em 2 equipes
- Jogue suas cartas - Clique nas cartas da sua mão para jogá-las
- Peça Truco - Use o botão "Truco!" para aumentar o valor da rodada
- Aceite ou Recuse - Responda aos pedidos de truco da equipe adversária
- Vença a partida - Primeira equipe a atingir 12 pontos vence!
src/
├── br/com/truco/
│ ├── main/
│ │ └── Main.java
│ ├── model/
│ │ ├── deck/
│ │ │ ├── Carta.java
│ │ │ ├── Mao.java
│ │ │ └── Naipe.java
│ │ ├── Equipe.java
│ │ ├── Jogador.java
│ │ ├── Partida.java
│ │ └── Rodada.java
│ ├── service/
│ │ ├── Embaralhar.java
│ │ ├── GerenciadorJogo.java
│ │ ├── JogoTruco.java
│ │ └── RegrasTruco.java
│ ├── view/
│ │ └── TrucoGUI.java
│ └── database/
│ ├── conexao/
│ │ ├── Conexao.java
│ │ └── TesteConexao.java
│ └── dao/
│ └── ConexaoDAO.java
├── main/resources/
│ └── truco_database.sql
├── pom.xml
├── README.md
├── CHANGELOG.md
├── LICENSE
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── run.bat
├── run.sh
├── config.properties
├── config.properties.example
└── .gitignore
- Manilhas (em ordem): 4 de Paus, 7 de Copas, Ás de Espadas, 7 de Ouros
- Cartas normais: Ás, 2, 3, 4, 5, 6, 7, 10, Valete, Dama, Rei
- Naipe de trunfo: Varia a cada partida
- Truco: 3 pontos
- Seis: 6 pontos
- Nove: 9 pontos
- Doze: 12 pontos
- Partida: 12 pontos para vencer
- Jogar carta: Clique na carta desejada
- Pedir truco: Aumentar o valor da rodada
- Aceitar: Concordar com o truco
- Recusar: Desistir da rodada
# Instale o Maven e adicione ao PATH
# Windows: Baixe de https://maven.apache.org/download.cgi
# Linux: sudo apt install maven
# macOS: brew install maven# Instale o Java 17+
# Windows: Baixe de https://adoptium.net/
# Linux: sudo apt install openjdk-17-jdk
# macOS: brew install openjdk@17# Verifique se o MySQL está rodando
# Windows: net start mysql
# Linux: sudo systemctl start mysql
# macOS: brew services start mysql# Limpe o projeto e recompile
mvn clean
mvn compile# Baixe as dependências novamente
mvn clean
mvn dependency:resolve
mvn compileSe você não conseguir instalar o Maven, pode executar diretamente com o Java:
# Criar diretório de classes
mkdir -p target/classes
# Compilar todas as classes
javac -cp "lib/*" -d target/classes src/br/com/truco/**/*.javajava -cp "target/classes:lib/*" br.com.truco.main.Mainrun.bat- Executar no Windowsrun.sh- Executar no Linux/macOSconfig.properties- Configurações do jogosrc/main/resources/truco_database.sql- Script do banco
- Encapsulamento
- Herança
- Polimorfismo
- Abstração
- Interfaces e Classes Abstratas
- Java Swing
- Event Handling
- Layout Management
- Componentes GUI
- JDBC
- MySQL
- CRUD Operations
- Connection Management
- Padrão MVC
- Separação de Responsabilidades
- Injeção de Dependência
- Clean Code
- Classes e Objetos
- Herança e Polimorfismo
- Interfaces e Enums
- Collections e Generics
- Exception Handling
- JFrame e JPanel
- Event Listeners
- Layout Managers
- Custom Components
- SQL Queries
- JDBC Connection
- Prepared Statements
- Result Sets
- Dependency Management
- Build Lifecycle
- Plugins
- Project Structure
- Linhas de Código: ~2,000+
- Classes: 15+
- Métodos: 100+
- Arquivos: 25+
- Tempo de Desenvolvimento: 1 dia
- Modo multiplayer online
- Estatísticas detalhadas
- Diferentes níveis de IA
- Temas visuais personalizáveis
- Sistema de torneios
- Replay de partidas
Este é um projeto de estudo, mas sugestões e melhorias são bem-vindas!
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Projeto de Estudo - Desenvolvido em dupla