Essa biblioteca provê uma interface homem-computador para Jogo de Truco seguindo as interfaces Java usadas no curso Programação Orientada a Objetos – Java a partir do 1o oferecimento de 2008 até o 2o oferecimento de 2011.
Para usá-la é necessário implementar a lógica de negócio do jogo de truco. Ou seja, aqui não é disponibilizado uma implementação completa de Jogo – cabe a você implementá-la seguindo algumas interfaces básicas.
Licença
Este Software é licenciado sob a CC-GNU LGPL.
Este software usa as imagens criadas por Jesse Fuchs e Tom Hart sob a licença Creative Commons.
Software
- Download do código fonte (alteração: 22/07/2009).
Manual
Para usar a biblioteca é necessário implementar a interface br.usp.poli.java.ihc.JogoDeTruco
. Nessa interface são definidos dois métodos: um que inicia um jogo (passando dois jogadores que são criados pela IHC) e um que informa o nome do criador da implementação da interface (que aparecerá na janela “Sobre”).
Uma vez criadas as implementações da interface JogoDeTruco, para que o programa rode é necessário instanciar um objeto da classe Truco, passando para o construtor as classes que implementam o jogo de manilha fixa e o de manilha variável (podem ser nulos, o que impedirá que se jogue com essas regras) e também as classes que representam os Jogadores controlados por computador (para manilha fixa e para manilha variável). Essa classe precisa implementar a interface br.usp.poli.java.IJogadorManilhaFixa oubr.usp.poli.java.IJogadorManilhaVariavel(são as mesmas interfaces que foram usadas para o projeto do curso, apenas em um pacote específico). O uso da classe controlada por computador usa o mecanismo de reflexão do Java. Na prática, é só passar o atributo “class” de uma classe que implementa a interface jogador adequada.
Por fim, chamando o método “iniciar” da classe Truco, a interface se inicia.
Cuidados:
- As classes jogador devem possuir um construtor sem parâmetros (sem isso não consigo criar jogadores).
- O pacote br.usp.poli.java possui as interfaces a respeito do Jogador que precisam ser implementadas.
Exemplo
Segue um código básico de uso da biblioteca:
public static void main(String[] args) { Truco jogo = new Truco(new JogoManilhaFixa(), new JogoManilhaVariavel(), JogadorSimplesManilhaFixa.class, JogadorSimplesManilhaVariavel.class); jogo.iniciar(); }
Organização
Os arquivos .properties (cartas e truco) são os arquivos de configuração da interface (um com os detalhes das figuras das cartas e o outro com os detalhes da tela do jogo).
Na pasta “images” estão as figuras das cartas, obtidas daqui, com o arquivo de copyright apropriado.
A outra pasta (br) é já a pasta com o código fonte (é um pacote).
Imagens
Algumas imagens da biblioteca funcionando com uma implementação do Jogo:
- 22/07/2009
- Alterações no endereço do site e detalhes do leiame.txt.
- 28/03/2009
- Reorganização da tela para caber em resoluções de 800×600.
- 21/01/2009
- Correção no acesso aos recursos (pode-se fazer um jar com a interface).
- Mudança na semântica dos métodos da interface IJogador.
- 16/06/2008
- Versão Inicial
Muito obrigado ajudou muito.