Projeto de Software Orientado a Objeto

Descrição do Projeto - Período 2004.1


Você deve implementar, em Java, um programa para manipular pilhas de cartas de forma a poder jogar um jogo como Paciência (também chamado Klondike). Seu programa não precisa ter interface gráfica: toda manipulação é feita através de linha de comando. As regras do jogo Klondike devem ser obedecidas. As pilhas de baixo são chamadas "tableaux"; as de cima à direita são "fundações"; as duas pilhas mais à esquerda são chamadas de "estoque" (esquerda) e "descarte" (direita). O baralho deve ser embaralhado (traçado) no início do jogo. A linguagem deve permitir operações adicionais tais como "encerrar", "reiniciar", etc.

Temos pouco tempo para o projeto. Por outro lado, seu programa deve usar uma arquitetura com isolamento entre a lógica de negócio e a interface. Exponha as interfaces da lógica de negócio através de uma API.

Um dos objetivos do projeto é de usar o maior número de design patterns possível. Pense em formas de maximizar a flexibilidade do código. Portanto, a linguagem de comando que você usará deve ser genérica o suficiente para permitir a manipulação de quaisquer outros jogos semelhantes envolvendo tableaux, fundações, estoque e descarte.

O projeto será avaliado através de 3 milestones:

Alternativa: Se você quiser usar um processo semelhante a XP, você pode redefinir os três milestones e apresentar código desde o início, com seus testes de unidade e aceitação. Precisa combinar com o professor.

Para cada milestone, entregue o seguinte material: