mt
Class JogoLocal

java.lang.Object
  extended by mt.Jogo
      extended by mt.JogoLocal
All Implemented Interfaces:
java.lang.Runnable

public class JogoLocal
extends Jogo

Jogo rodando no celular.

Um jogador só passa a fazer parte do jogo se for adicionado a ele pelo método adiciona().

A classe notifica aos jogadores participantes os eventos relevantes (ex.: início da partida, vez passando para um jogador, carta jogada, pedido de truco), e os jogadores podem usar os métodos de entrada (ex.: jogaCarta(), aumentaAposta, etc.) para interagir com o jogo.

Author:
Chester

Field Summary
 
Fields inherited from class mt.Jogo
cartaDaMesa, cartasJogadasPorRodada, jogoFinalizado, letrasOrdenadas, log, modoCE, numJogadores, numRodadaAtual, pontosEquipe, vaquinhasNoPasto
 
Constructor Summary
JogoLocal(boolean baralhoLimpo, boolean manilhaVelha)
          Cria um novo jogo.
JogoLocal(boolean baralhoLimpo, boolean manilhaVelha, int nPartidasModoCE)
          Cria um novo jogo no modo confronto de estratégias O jogo é criado, mas apenas inicia quando forem adicionados jogadores
 
Method Summary
 void atualizaSituacao(SituacaoJogo s, Jogador j)
          Atualiza um objeto que contém a situação do jogo (exceto pelas cartas do jogador)
 void aumentaAposta(Jogador j)
          Informa que o jogador solicitou um aumento de aposta ("truco", "seis", etc.).
 void decideMao11(Jogador j, boolean aceita)
          Informa ao jogo o resultado de aceite daquela mão de 11
 boolean isBaralhoLimpo()
           
 boolean isManilhaVelha()
           
 void jogaCarta(Jogador j, Carta c)
          Informa que o jogador vai descartar aquela carta.
 void respondeAumento(Jogador j, boolean aceitou)
          Informa que o jogador respondeu a um pedido de aumento de aposta
 void run()
          Inicia o jogo.
 
Methods inherited from class mt.Jogo
abortaJogo, adiciona, getCartasDaRodada, getJogador, getManilha, getValorTruco, getValorTruco, isAlguemTem11Pontos, log, setManilha
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JogoLocal

public JogoLocal(boolean baralhoLimpo,
                 boolean manilhaVelha)
Cria um novo jogo.

O jogo é criado, mas apenas inicia quando forem adicionados jogadores

Parameters:
manilhaVelha - true para jogo com manilhas fixas, false para jogar ocm "vira"
baralhoLimpo - true para baralho sem os 4, 5, 6, 7, false para baralho completo (sujo)

JogoLocal

public JogoLocal(boolean baralhoLimpo,
                 boolean manilhaVelha,
                 int nPartidasModoCE)
Cria um novo jogo no modo confronto de estratégias

O jogo é criado, mas apenas inicia quando forem adicionados jogadores

Parameters:
manilhaVelha - true para jogo com manilhas fixas, false para jogar ocm "vira"
baralhoLimpo - true para baralho sem os 4, 5, 6, 7, false para baralho completo (sujo)
Method Detail

run

public void run()
Description copied from class: Jogo
Inicia o jogo.

O jogo deve ser inicializado numa thread separada da principal, desta forma é mais conveniente que ele seja o Runnable desta thread, daí o nome do método.

Specified by:
run in interface java.lang.Runnable
Specified by:
run in class Jogo

jogaCarta

public void jogaCarta(Jogador j,
                      Carta c)
Description copied from class: Jogo
Informa que o jogador vai descartar aquela carta.

Tem que ser a vez dele e não pode haver ninguém trucando.

A rotina não verifica se o jogador realmente possuía aquela carta - assume-se que as instâncias de Jogador são honestas e se protegem de clientes remotos desonestos

Specified by:
jogaCarta in class Jogo

decideMao11

public void decideMao11(Jogador j,
                        boolean aceita)
Description copied from class: Jogo
Informa ao jogo o resultado de aceite daquela mão de 11

Specified by:
decideMao11 in class Jogo
Parameters:
j - Jogador que está respondendo
aceita - true se o jogador topa jogar, false se deixar para o parceiro decidir

aumentaAposta

public void aumentaAposta(Jogador j)
Description copied from class: Jogo
Informa que o jogador solicitou um aumento de aposta ("truco", "seis", etc.).

Os jogadores são notificados, e a aposta será efetivamente aumentada se um dos adversários responder positivamente.

Observe-se que a vez do jogador fica "suspensa", já que lançamentos de cartas só são aceitos se não houver ninguém trucando. Como o jogador atualmente só pode trucar na sua vez, isso não é problema.

Specified by:
aumentaAposta in class Jogo
Parameters:
j - Jogador que está solicitando o aumento

respondeAumento

public void respondeAumento(Jogador j,
                            boolean aceitou)
Description copied from class: Jogo
Informa que o jogador respondeu a um pedido de aumento de aposta

Specified by:
respondeAumento in class Jogo
Parameters:
j - Jogador que respondeu ao pedido
aceitou - true se ele mandou descer, false se correu

atualizaSituacao

public void atualizaSituacao(SituacaoJogo s,
                             Jogador j)
Description copied from class: Jogo
Atualiza um objeto que contém a situação do jogo (exceto pelas cartas do jogador)

Specified by:
atualizaSituacao in class Jogo
Parameters:
s - objeto a atualizar
j - Jogador que receberá a situação

isBaralhoLimpo

public boolean isBaralhoLimpo()
Specified by:
isBaralhoLimpo in class Jogo
Returns:
True para jogo sem os 4,5,6 e 7.

isManilhaVelha

public boolean isManilhaVelha()
Specified by:
isManilhaVelha in class Jogo
Returns:
True para manilhas fixas (sem "vira")