Este é um projeto de um jogo de blackjack jogável em Java, com testes unitários implementados usando o framework JUnit. O objetivo deste projeto é fornecer uma implementação funcional e uma suíte abrangente de testes para o jogo de blackjack.
O projeto inclui um tratamento de exceções para lidar com situações imprevistas durante o jogo. Este recurso garante uma experiência de jogo mais estável e confiável.
O código incorpora alguns padrões de projeto fundamentais para promover uma estrutura modular e eficiente:
-
Singleton Pattern:
- A classe
CSVDatabaseé implementada como um singleton, garantindo que apenas uma instância seja criada para salvar resultados e adicionar ao histórico.
- A classe
-
Observer Pattern:
- O uso de
IntegerPropertydo JavaFX segue o padrão Observer, permitindo atualizações dinâmicas na interface do usuário com base em alterações nos valores associados.
- O uso de
Os resultados das partidas são apresentados de forma clara e informativa. Após o término de uma partida, os jogadores podem visualizar quem venceu, a pontuação final e outros detalhes relevantes.
Ao finalizar uma partida, os jogadores têm a opção de iniciar uma nova rodada imediatamente ou sair do jogo. Essa funcionalidade proporciona uma experiência contínua e amigável ao usuário.
- Linguagem de Programação: Java
- Interface: JavaFX
- Versionamento e hospedagem: Git e Github
- Testes: Junit
- Clone o repositório para o seu ambiente de desenvolvimento:
git clone https://github.com/seu-usuario/jogo-de-blackjack.git - Navegue até o diretório do projeto:
cd BlackjackJavaGame - Compile o projeto:
javac Main.java - Execute o jogo:
java Main
Siga as instruções na linha de comando para jogar o blackjack, inserindo suas decisões de apostas e jogadas.
O projeto inclui uma suíte de testes unitários escritos com o framework JUnit. Para executar os testes, siga estas etapas:
- Certifique-se de ter o JUnit configurado em seu ambiente de desenvolvimento. Caso contrário, você pode adicionar as dependências necessárias ao seu projeto.
- Navegue até o diretório de testes:
cd test - Compile os testes:
javac -cp .:junit.jar BlackjackGameTest.java - Execute os testes:
java -cp .:junit.jar org.junit.runner.JUnitCore BlackjackGameTest
Os testes verificarão se a lógica do jogo está funcionando corretamente, incluindo as regras específicas do blackjack.
-
Sobreposição de Cartas ao Clicar em "Ficar" e Atraso na Passagem de Turno
- A interface apresenta sobreposição de cartas ao clicar em "Ficar", e a passagem de turno só ocorre quando um sinal específico é recebido ✅.
-
Jogador 2 não Recebe Ambas as Cartas ao Reiniciar o Jogo
- Ao reiniciar o jogo, o jogador 2 não está recebendo ambas as cartas e a soma correta não está sendo feita ao clicar em "Jogar de Novo" ✅.
-
Erro na Contagem da Pontuação - Adição Inadequada de 10 Pontos e Outras Inconsistências
- A pontuação está incorretamente somando mais 10 pontos, além de apresentar outros erros ✅.
-
Falha na Persistência de Resultados no Histórico
- Os resultados do jogo não estão sendo salvos corretamente no histórico ✅.
-
Loop Infinito ao Pedir Carta
- A funcionalidade de pedir carta está presa em um loop infinito ✅.
-
Aviso de Rodada do jogador
- Ausência de um indicador de jogador ✅.
-
CSV salvando resultado duas vezes
- está sendo salvo duas vezes no csv ✅.
-
Variação no Valor do Ás em Diferentes Contextos
- O valor do Ás está variando em situações específicas 🔃.
-
Casos de Teste Ausentes
- Não foram implementados casos de teste para avaliar diferentes cenários do programa 🔃.
-
Falta de Implementação para Jogar com a CPU
- A funcionalidade para jogar contra a CPU ainda não foi implementada ❌.
- Separação de lógica e interface do Controller
- separar a interface da lógica no Controller ❌.
Contribuições são bem-vindas. Para contribuir, siga estas etapas:
- Faça um fork do projeto.
- Crie uma nova branch para sua contribuição:
git checkout -b feature/sua-contribuicao. - Faça as alterações necessárias.
- Envie as alterações:
git push origin feature/sua-contribuicao. - Abra um pull request.
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para obter mais informações.
Divirta-se jogando blackjack e contribuindo para este projeto!
Se você tiver alguma dúvida ou precisar de assistência, entre em contato em liedson.b9@gmail.com.
