fw.jogoCartas
Class VerificadorRegrasCaptiveQueens

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

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

Um objeto desta classe verifica as regras do jogo Captive Queens.

See Also:
Serialized Form

Field Summary
private  int numEstoqueIniciado
          Informa o numero maximo de vezes que o estoque foi inicializado com as cartas do descarte.
private  int numMaxEstoqueIniciado
          Informa o numero maximo de vezes que o estoque pode ser inicializado com as cartas do descarte.
private  int pontuacao
          Um valor que indica a pontuação do jogo corrente.
 
Constructor Summary
VerificadorRegrasCaptiveQueens()
          Cria um novo verificador para o jogo .
 
Method Summary
private  void descarteParaEstoque(PilhaIF fonte, PilhaIF destino)
          Move todas as cartas da pilha descarte para a pilha estoque.
private  void descarteParaFundacao5(PilhaIF fonte, PilhaIF destino)
          Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor 5.
private  void descarteParaFundacao6(PilhaIF fonte, PilhaIF destino)
          Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor 6.
private  void descarteParaFundacaoQ(PilhaIF fonte, PilhaIF destino)
          Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor Q.
private  void estoqueParaDescarte(PilhaIF fonte, PilhaIF destino)
          Retira a carta do topo do estoque e insere no topo do descarte.
 java.lang.String getPontuacao()
          Retorna a pontuação do jogo corrente.
 java.lang.String getRegras()
          Retorna um texto contendo as regras do jogo Captive Queens.
 boolean iniciarEstoquePermitido()
          Indica se o estoque ainda pode ser reinicializado, isto é, se as cartas do descarte podem novamente voltar ao estoque.
 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 Captive Queens.
 boolean verificaSeVenceu(ColecaoPilhasIF pilhas)
          Informa se o jogador já 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.

numEstoqueIniciado

private int numEstoqueIniciado
Informa o numero maximo de vezes que o estoque foi inicializado com as cartas do descarte.

numMaxEstoqueIniciado

private int numMaxEstoqueIniciado
Informa o numero maximo de vezes que o estoque pode ser inicializado com as cartas do descarte.
Constructor Detail

VerificadorRegrasCaptiveQueens

public VerificadorRegrasCaptiveQueens()
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 Captive Queens.
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.

estoqueParaDescarte

private void estoqueParaDescarte(PilhaIF fonte,
                                 PilhaIF destino)
Retira a carta do topo do estoque e insere no topo do descarte.
Parameters:
fonte - A pilha fonte.
destino - A pilha destino.

descarteParaFundacao5

private void descarteParaFundacao5(PilhaIF fonte,
                                   PilhaIF destino)
                            throws JogadaNaoPermitidaException
Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor 5. Esta carta deve ter o mesmo naipe que a carta no topo da pilha destino e um valor imediatamente inferior. A única exceção a esta regra é a carta K (Rei), que deve ser colocada após um AS do mesmo naipe.
Parameters:
destino - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

descarteParaFundacaoQ

private void descarteParaFundacaoQ(PilhaIF fonte,
                                   PilhaIF destino)
                            throws JogadaNaoPermitidaException
Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor Q. As fundações que iniciam com Q recebem, cada uma, apenas uma carta, que deve ser uma rainha.
Parameters:
destino - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

descarteParaFundacao6

private void descarteParaFundacao6(PilhaIF fonte,
                                   PilhaIF destino)
                            throws JogadaNaoPermitidaException
Retira a carta do topo do descarte e a insere no topo de uma das fundacoes que iniciam com o valor 6. Esta carta deve ter o mesmo naipe que a carta no topo da pilha destino e um valor imediatamente superior.
Parameters:
destino - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando a jogada não for condizente com as regras do jogo.

descarteParaEstoque

private void descarteParaEstoque(PilhaIF fonte,
                                 PilhaIF destino)
                          throws JogadaNaoPermitidaException
Move todas as cartas da pilha descarte para a pilha estoque.
Parameters:
destino - A pilha fonte.
destino - A pilha destino.
Throws:
JogadaNaoPermitidaException - Quando o estoque não estiver vazio, quando o descarte estiver vazio ou quando o estoque já tiver sido inicializado a quantidade de vezes permitida.

iniciarEstoquePermitido

public boolean iniciarEstoquePermitido()
Indica se o estoque ainda pode ser reinicializado, isto é, se as cartas do descarte podem novamente voltar ao estoque. A regra do jogo diz que esta jogada só pode ser realizada 3 vezes.
Specified by:
iniciarEstoquePermitido in interface VerificadorRegrasIF
Returns:
true se o estoque pode ser reinicializado com as cartas do descarte e false caso contrário.

verificaSeVenceu

public boolean verificaSeVenceu(ColecaoPilhasIF pilhas)
Informa se o jogador já 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 Captive Queens.
Specified by:
getRegras in interface VerificadorRegrasIF
Returns:
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.

zeraPontuacao

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