/minitruco-android

Port of miniTruco, the popular J2ME Brazilian Truco game (http://chester.blog.br/minitruco) to Android

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

miniTruco Android
-----------------

O miniTruco é um jogo de truco para celulares, tablets e outros dispositivos móvieis. O código original original foi escrita para a plataforma Java ME. Esta versão Android reutiliza parte daquele código (em particular as estratégias de jogo), mas muito foi reescrito e redesenhado.

O jogo ainda está em desenvolvimento e pode apresentar instabilidades. Reports de exceções e feedback (positivo ou negativo, desde que seja educado) através do Android Market são bem-vindos.

Este software é livre, e você é encorajado a usar e modificar seu código como quiser, dentro dos termos da Licença Pública Geral GNU (vide abaixo para maiores informações).

[1] A versão Java ME continua hospedada em http://code.google.com/p/minitruco


Requisitos do Código-Fonte
--------------------------

O código tem como plataforma-alvo o Android 1.6. Para a compilação é necessário apenas o Android SDK, mas é fortemente recomendado que se use o Eclipse 3.5 ou superior com os plugins do Google. Neste caso, basta importar a sub-pasta minitruco-android como projeto e testar diretament no emulador.

A pasta minitruco-android-roboelectric-test contém um projeto de teste que usa o Roboletric[2], um framework que permite rodar os testes JUnit fora do emulador. A cobertura de testes é maior na parte não-visual, e limitada pelo fato de o código original não ter sido pensado para testes - pode ser preciso refatorar bastante para incluir testes, e ajuda é muito bem-vinda.

Para rodar este projeto de teste, importe-o "lado a lado" com o projeto principal, certifique-se de usar o Eclipse JUnit Launcher (e não o Android Launcher, que vai rodar no emulador) e de acrescentar o projeto original no Source Lookup Path (dentro do Run Configurations para este teste).

[2] http://pivotal.github.com/robolectric/


Backlog
-------

Features/bugs:
- Nenhum! \o/

Débito Técnico:
- Refactor: Renomear o Jogo e descendentes para Partida (fazer isso quando tiver tempo, para arrumar comentários, etc.)
- Refactor: Trocar os loops de thread baseados em sleep por um esquema wait/notify (JogadorCPU e JogoLocal). Ou pelo menos fazer algo melhor com as InterruptedException (vide http://bit.ly/172PUX)
- Mover strings (ex.: frases do botão de truco) para strings.xml
- Criar constantes, polimorfismos ou qualquer coisa para matar os magic numbers herdados do miniTruco Java ME. Ex.: posições dos jogadores, nomes das equipes.
- Criar uma documentação do desenvolvedor nos moldes de http://minitruco.googlecode.com/svn/tags/v3.12.00/docs/index.html

Features 2.0:
- Jogos multiplayer


Créditos e Licença
------------------

Copyright © 2005-2011 Carlos Duarte do Nascimento (Chester) - cd@pobox.com

Imagens de carta, fundo e logotipo: Copyright © 2010-2011 Vanessa Sabino (Bani)

Estratégias da CPU: Copyright © 2006-2011 Leonardo Sellani, Sandro Gasparotto

Código-fonte: http://github.com/chesterbr/minitruco-android

miniTruco-android é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 3 da Licença.

miniTruco-android é distribuido na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.

Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com miniTruco-android. Se não, veja http://www.gnu.org/licenses/licenses.pt.html