mt
Class JogadorCPU

java.lang.Object
  extended by mt.Jogador
      extended by mt.JogadorCPU
All Implemented Interfaces:
java.lang.Runnable

public class JogadorCPU
extends Jogador
implements java.lang.Runnable

Jogador controlado pelo celular ou pelo servidor.

É preciso "plugar" uma estratégia para que o jogador funcione.

Author:
Chester
See Also:
Estrategia

Field Summary
(package private)  SituacaoJogo situacaoJogo
          Situação atual do jogo (para o estrategia)
(package private)  int valorProximaAposta
           
 
Fields inherited from class mt.Jogador
ESTRATEGIAS, jogo, opcoesEstrategia
 
Constructor Summary
JogadorCPU()
          Cria um novo jogador CPU, com uma estratégia aleatória
JogadorCPU(Estrategia estrategia)
          Cria um novo jogador CPU, usando a estratégia fornecida.
JogadorCPU(java.lang.String nomeEstrategia)
          Cria um novo jogador CPU, buscando a estratégia pelo nome.
 
Method Summary
 void aceitouAumentoAposta(Jogador j, int valor)
          Informa que o jogador aceitou um pedido de aumento de aposta.
 void cartaJogada(Jogador j, Carta c)
          Informa que uma carta foi jogada na mesa.
 void decidiuMao11(Jogador j, boolean aceita)
          Informa que um jogador fez sua escolha de topar ou não uma rodada quando sua equipe tinha 11 pontos
 void informaMao11(Carta[] cartasParceiro)
          Informa que o jogador é beneficiário de uma "mão de 11", e, portanto, deve decidir se aceita ou não esta rodada (se aceitar vale 3 pontos, se ambos recusarem perde 1)
 void inicioMao()
          Informa ao jogador que uma nova mão está iniciando.
 void inicioPartida()
          Informa que uma partida começou.
 void jogadaRecusada(int numJogadores, int equipeTrucando, Jogador jogadorDaVez)
           
 void jogoAbortado(int posicao)
          Informa que o jogo foi abandonado por alguma causa externa (ex.: um jogador desistiu)
 void jogoFechado(int numEquipeVencedora, int[] vaquinhasNoPasto)
          Informa que o jogo foi concluído
 void maoFechada(int[] pontosEquipe, int[] vaquinhasNoPasto)
          Informa que a mão foi concluída
 void pediuAumentoAposta(Jogador j, int valor)
          Informa que um jogador pediu aumento de aposta (truco, seis, etc.).
 void recusouAumentoAposta(Jogador j)
          Informa que o jogador recusou um pedido de aumento de aposta.
 void rodadaFechada(int numMao, int resultado, Jogador jogadorQueTorna)
          Informa o jogador que a rodada foi fechada
 void run()
          Envia a notificação de aumento de aposta.
 void vez(Jogador j, boolean podeFechada)
          Informa que é a vez de um jogador jogar.
 
Methods inherited from class mt.Jogador
criaEstrategiaPeloNome, getCartas, getEquipe, getEquipeAdversaria, getNome, getParceiro, getPosicao, possuiCarta, setCartas, setNome, setPosicao
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

situacaoJogo

SituacaoJogo situacaoJogo
Situação atual do jogo (para o estrategia)


valorProximaAposta

int valorProximaAposta
Constructor Detail

JogadorCPU

public JogadorCPU(Estrategia estrategia)
Cria um novo jogador CPU, usando a estratégia fornecida.

Parameters:
estrategia - Estratégia a ser adotada por este jogador

JogadorCPU

public JogadorCPU(java.lang.String nomeEstrategia)
Cria um novo jogador CPU, buscando a estratégia pelo nome.

Parameters:
nomeEstrategia - Nome da estratégia (ex.: "Willian")

JogadorCPU

public JogadorCPU()
Cria um novo jogador CPU, com uma estratégia aleatória

Method Detail

vez

public void vez(Jogador j,
                boolean podeFechada)
Description copied from class: Jogador
Informa que é a vez de um jogador jogar.

Specified by:
vez in class Jogador
Parameters:
j - Jogador cuja vez chegou
podeFechada - true se o jogador pode jogar carta fechada, false se não pod

run

public void run()
Envia a notificação de aumento de aposta.

É feito em thread separada para que o vez() aguarde as respostas sem se perder.

Specified by:
run in interface java.lang.Runnable

pediuAumentoAposta

public void pediuAumentoAposta(Jogador j,
                               int valor)
Description copied from class: Jogador
Informa que um jogador pediu aumento de aposta (truco, seis, etc.).

Specified by:
pediuAumentoAposta in class Jogador
Parameters:
j - Jogador que pediu o aumento
valor - Quanto a mão passará a valar se algum adversário aceitar

aceitouAumentoAposta

public void aceitouAumentoAposta(Jogador j,
                                 int valor)
Description copied from class: Jogador
Informa que o jogador aceitou um pedido de aumento de aposta.

Specified by:
aceitouAumentoAposta in class Jogador
Parameters:
j - Jogador que aceitou o aumento
valor - Quanto a mão está valendo agora

recusouAumentoAposta

public void recusouAumentoAposta(Jogador j)
Description copied from class: Jogador
Informa que o jogador recusou um pedido de aumento de aposta.

Obs.: isso não impede que o outro jogador da dupla aceite o pedido, é apenas para notificação visual. Se o segundo jogdor recusar o pedido, a mensagem de derrota da dupla será enviada logo em seguida.

Specified by:
recusouAumentoAposta in class Jogador
Parameters:
j - Jogador que recusou o pedido.

jogadaRecusada

public void jogadaRecusada(int numJogadores,
                           int equipeTrucando,
                           Jogador jogadorDaVez)

rodadaFechada

public void rodadaFechada(int numMao,
                          int resultado,
                          Jogador jogadorQueTorna)
Description copied from class: Jogador
Informa o jogador que a rodada foi fechada

Specified by:
rodadaFechada in class Jogador
Parameters:
numMao - 1 a 3, rodada que foi fechada
resultado - 1 se a equipe 1+3 venceu, 2 se a equipe 2+4 venceu, 3 se empatou
jogadorQueTorna - jogador que venceu a rodada (e que irá "tornar"), ou null se for empate

maoFechada

public void maoFechada(int[] pontosEquipe,
                       int[] vaquinhasNoPasto)
Description copied from class: Jogador
Informa que a mão foi concluída

Specified by:
maoFechada in class Jogador
Parameters:
pontosEquipe - Array com os pontos da equipe 1 e 2 (índices 0 e 1)
vaquinhasNoPasto - Array com os pontos com relação ao número de partidas das equipes 1 e 2 (índices 0 e 1)

jogoFechado

public void jogoFechado(int numEquipeVencedora,
                        int[] vaquinhasNoPasto)
Description copied from class: Jogador
Informa que o jogo foi concluído

Specified by:
jogoFechado in class Jogador
Parameters:
numEquipeVencedora - Equipe que ganhou o jogo (1 ou 2)
vaquinhasNoPasto - Array com os pontos com relação ao número de partidas das equipes 1 e 2 (índices 0 e 1)

cartaJogada

public void cartaJogada(Jogador j,
                        Carta c)
Description copied from class: Jogador
Informa que uma carta foi jogada na mesa.

Specified by:
cartaJogada in class Jogador
Parameters:
j - Jogador que jogou a carta
c - Carta jogada

inicioMao

public void inicioMao()
Description copied from class: Jogador
Informa ao jogador que uma nova mão está iniciando.

Ao receber esta mensagem, as cartas do jogador já foram atribuídas via setCartas(), e a carta virada já está disponível via getCarta().

Specified by:
inicioMao in class Jogador

inicioPartida

public void inicioPartida()
Description copied from class: Jogador
Informa que uma partida começou. Não é obrigatório tratar - até porque o inicioMao será chamado logo em seguida.

Specified by:
inicioPartida in class Jogador

decidiuMao11

public void decidiuMao11(Jogador j,
                         boolean aceita)
Description copied from class: Jogador
Informa que um jogador fez sua escolha de topar ou não uma rodada quando sua equipe tinha 11 pontos

Specified by:
decidiuMao11 in class Jogador
Parameters:
j - Jogador que fez a escolha
aceita - true se o jogador topou, false se recusou

informaMao11

public void informaMao11(Carta[] cartasParceiro)
Description copied from class: Jogador
Informa que o jogador é beneficiário de uma "mão de 11", e, portanto, deve decidir se aceita ou não esta rodada (se aceitar vale 3 pontos, se ambos recusarem perde 1)

Specified by:
informaMao11 in class Jogador
Parameters:
cartasParceiro - Cartas do parceiro
See Also:
Jogo.decideMao11(Jogador, boolean)

jogoAbortado

public void jogoAbortado(int posicao)
Description copied from class: Jogador
Informa que o jogo foi abandonado por alguma causa externa (ex.: um jogador desistiu)

Specified by:
jogoAbortado in class Jogador
Parameters:
posicao - Posição do jogador que abortou