🦁 Simulador de Jogo do Bicho com Java e Design Patterns
Este projeto é uma aplicação Java desenvolvida para fins educacionais e estatísticos. O objetivo é simular o funcionamento de uma banca de "Jogo do Bicho" e demonstrar, através da Lei dos Grandes Números, como a probabilidade matemática favorece a banca a longo prazo, independentemente de vitórias eventuais dos jogadores.
O projeto foca fortemente na aplicação de Boas Práticas de Engenharia de Software, SOLID e Design Patterns.
🚀 Tecnologias Utilizadas
- Java 17+
- Maven (Gerenciamento de dependências e build)
- JUnit 5 (Testes Unitários)
🏗️ Arquitetura e Design Patterns
O diferencial deste projeto não é o jogo em si, mas a estrutura do código. Foram implementados diversos padrões para garantir desacoplamento e escalabilidade:
1. Strategy Pattern (/strategies)
Utilizado para encapsular as regras de cálculo de premiação.
- Cada tipo de aposta (Grupo, Milhar, Dezena, etc.) possui sua própria classe de estratégia.
- Isso respeita o Open/Closed Principle (OCP): para adicionar um novo tipo de aposta, basta criar uma nova classe sem alterar o código existente da banca.
2. Observer Pattern (/observer)
Utilizado para monitorar os eventos de sorteio.
- A
BancaService notifica os observadores (listeners) sempre que um sorteio ocorre.
- Isso permite que a interface (Console) seja atualizada com o resultado e o saldo sem que a regra de negócio dependa diretamente do
System.out.println.
3. Factory Pattern (ApostaFactory)
Utilizado para centralizar a criação de objetos complexos de aposta, garantindo que as instâncias sejam criadas de forma consistente e com as validações necessárias.
📂 Estrutura do Projeto
src/
├── main/
│ └── java/
│ ├── app/ # Classe Main (Ponto de entrada)
│ ├── dominio/ # Entidades (Animal, Aposta)
│ ├── observer/ # Interfaces e implementações do Observer
│ ├── servico/ # Lógica de negócio (BancaService)
│ └── strategies/ # Implementação das regras de aposta (Strategy)
└── test/ # Testes unitários para validar a lógica
🧪 Como Executar
Pré-requisitos
- JDK 17 ou superior instalado.
- Maven instalado.
Passo a passo
- Clone o repositório:
git clone https://github.com/RaulTheFato7/Jogo_do_Bicho_VS_JAVA.git
cd jogo-do-bicho-simulador
mvn clean install
--- SIMULANDO 1000 RODADAS ---
SORTEIO: 4589 (URSO ) | Lucro Banca: R$ 120.00
SORTEIO: 1205 (CACHORRO ) | Lucro Banca: R$ 135.00
...
SALDO FINAL DA BANCA: R$ 5420.00
Conclusão: Mesmo com vitórias eventuais dos jogadores,
a estatística garante que a banca termine positiva.
⚖️ Aviso Legal
Este software foi desenvolvido estritamente para fins de estudo de programação e
estatística. Não incentivamos jogos de azar.
O código demonstra apenas a lógica matemática por trás de sistemas de apostas.
Desenvolvido po Raul Vitorio
https://www.linkedin.com/in/raul-vitorio-dev/