fw.jogoCartas
Class VerificadorRegrasBakersDozen

java.lang.Object
  |
  +--fw.jogoCartas.VerificadorRegrasBakersDozen

public class VerificadorRegrasBakersDozen
extends java.lang.Object
implements VerificadorRegrasIF, java.io.Serializable

Um objeto desta classe verifica as regras do jogo Baker's Dozen.

See Also:
Serialized Form

Field Summary
private  int pontuacao
          Um valor que indica a pontuação do jogo corrente.
 
Constructor Summary
VerificadorRegrasBakersDozen()
          Cria um novo verificador para o jogo .
 
Method Summary
 java.lang.String getPontuacao()
          Retorna a pontuação do jogo corrente.
 java.lang.String getRegras()
          Retorna um texto contendo as regras do jogo Baker's Dozen.
 boolean iniciarEstoquePermitido()
          Indica se a pilha estoque pode ser novamente reinicializada após todas as suas cartas terem sido descartadas.
 void joga(java.lang.String fonte, java.lang.String destino, ColecaoPilhasIF pilhas)
          Move a carta do topo da pilha fonte para o topo da pilha destino, se for possível, de acordo com as regras do jogo Baker's Dozen.
private  void pilhaParaFundacao(PilhaIF fonte, PilhaIF fundacao)
          Move uma carta de uma das pilhas para uma das fundações.
private  void pilhaParaPilha(PilhaIF fonte, PilhaIF destino)
          Move uma carta de uma das pilhas para outra pilha.
 boolean verificaSeVenceu(ColecaoPilhasIF pilhas)
          Informa se o jogador ja' venceu o jogo.
 void zeraPontuacao()
          Zera a pontuação do jogo.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

pontuacao

private int pontuacao
Um valor que indica a pontuação do jogo corrente.
Constructor Detail

VerificadorRegrasBakersDozen

public VerificadorRegrasBakersDozen()
Cria um novo verificador para o jogo .
Method Detail

joga

public void joga(java.lang.String fonte,
                 java.lang.String destino,
                 ColecaoPilhasIF pilhas)
          throws JogadaNaoPermitidaException
Move a carta do topo da pilha fonte para o topo da pilha destino, se for possível, de acordo com as regras do jogo Baker's Dozen.
Specified by:
joga in interface VerificadorRegrasIF
Parameters:
fonte - O nome da pilha fonte.
destino - O nome da pilha destino.
pilhas - A coleção de pilhas do jogo.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

pilhaParaFundacao

private void pilhaParaFundacao(PilhaIF fonte,
                               PilhaIF fundacao)
                        throws JogadaNaoPermitidaException
Move uma carta de uma das pilhas para uma das fundações. Este movimento só é permitido quando existir no topo da fundação uma carta que tenha o mesmo naipe e um valor imediatamente superior ao da carta que será movida. Se a fundação estiver vazia, apenas um AS pode ser movido para ela.
Parameters:
fonte - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

pilhaParaPilha

private void pilhaParaPilha(PilhaIF fonte,
                            PilhaIF destino)
                     throws JogadaNaoPermitidaException
Move uma carta de uma das pilhas para outra pilha. Este movimento só é permitido quando a pilha destino não estiver vazia e o topo desta for uma carta com valor imediatamente superior ao da carta que deverá ser movida.
Parameters:
fonte - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

getPontuacao

public java.lang.String getPontuacao()
Retorna a pontuação do jogo corrente. Sempre inicia com zero.
Specified by:
getPontuacao in interface VerificadorRegrasIF
Returns:
A pontuação do jogo corrente.

verificaSeVenceu

public boolean verificaSeVenceu(ColecaoPilhasIF pilhas)
Informa se o jogador ja' venceu o jogo.
Specified by:
verificaSeVenceu in interface VerificadorRegrasIF
Parameters:
pilhas - As pilhas do jogo que deve ser verificado.
Returns:
true se ja' venceu e false caso contrario.

getRegras

public java.lang.String getRegras()
Retorna um texto contendo as regras do jogo Baker's Dozen.
Specified by:
getRegras in interface VerificadorRegrasIF
Returns:
As regras do jogo.

iniciarEstoquePermitido

public boolean iniciarEstoquePermitido()
Indica se a pilha estoque pode ser novamente reinicializada após todas as suas cartas terem sido descartadas.
Specified by:
iniciarEstoquePermitido in interface VerificadorRegrasIF
Returns:
True se o estoque pode ser reinicializado e false caso contrário.

zeraPontuacao

public void zeraPontuacao()
Zera a pontuação do jogo. Indica que um novo jogo deve ser iniciado.
Specified by:
zeraPontuacao in interface VerificadorRegrasIF