|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mt.Jogo mt.JogoTCP
public class JogoTCP
Jogo online no qual o usuário celular está conectado e jogando.
A classe atua como um proxy da classe JogoLocal que está efetivamente rodando no servidor. Ela transforma as chamadas de métodos em comandos remotos.
Das notificações recebidas, parte é usada para popular coleções locais (ex.: as cartas da mesa, que podem ser solicitadas pelo jogador), e parte é convertida em chamadas aos objetos Jogador.
Field Summary |
---|
Fields inherited from class mt.Jogo |
---|
cartasJogadasPorRodada, jogoFinalizado, letrasOrdenadas, log, modoCE, numJogadores, numRodadaAtual, pontosEquipe, vaquinhasNoPasto |
Constructor Summary | |
---|---|
JogoTCP(ServidorTCP servidor)
|
Method Summary | |
---|---|
void |
abortaJogo(int posicao)
Faz o jogador abortar o jogo atual |
void |
atualizaSituacao(SituacaoJogo s,
Jogador j)
Não implementado em jogo remoto (apenas o JogadorCPU usa isso, e ele não participa desses jogos). |
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 |
Carta |
getCartaDaMesa()
|
JogadorHumano |
getJogadorHumano()
Retorna o jogador humano que está no jogo |
boolean |
isBaralhoLimpo()
|
boolean |
isManilhaVelha()
|
void |
jogaCarta(Jogador j,
Carta c)
Informa que o jogador vai descartar aquela carta. |
void |
processaNotificacao(char tipoNotificacao,
java.lang.String parametros)
Processa uma notificação "in-game", gerando o evento apropriado no jogador humano |
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 |
---|
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 |
---|
public JogoTCP(ServidorTCP servidor)
Method Detail |
---|
public void abortaJogo(int posicao)
abortaJogo
in class Jogo
posicao
- posição (1 a 4) do jogador que motivou o abortpublic void run()
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.
run
in interface java.lang.Runnable
run
in class Jogo
public void jogaCarta(Jogador j, Carta c)
Jogo
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
jogaCarta
in class Jogo
public void decideMao11(Jogador j, boolean aceita)
Jogo
decideMao11
in class Jogo
j
- Jogador que está respondendoaceita
- true se o jogador topa jogar, false se deixar para o parceiro
decidirpublic void aumentaAposta(Jogador j)
Jogo
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.
aumentaAposta
in class Jogo
j
- Jogador que está solicitando o aumentopublic void respondeAumento(Jogador j, boolean aceitou)
Jogo
respondeAumento
in class Jogo
j
- Jogador que respondeu ao pedidoaceitou
- true
se ele mandou descer, false
se correupublic Carta getCartaDaMesa()
public void atualizaSituacao(SituacaoJogo s, Jogador j)
Se no futuro quisermos ter bots locais em jogos online, uma idéia seria
mover a implementação em JogoLocal
para Jogo
,
fazendo os ajustes necessários.
atualizaSituacao
in class Jogo
s
- objeto a atualizarj
- Jogador que receberá a situaçãopublic boolean isBaralhoLimpo()
isBaralhoLimpo
in class Jogo
public boolean isManilhaVelha()
isManilhaVelha
in class Jogo
public void processaNotificacao(char tipoNotificacao, java.lang.String parametros)
tipoNotificacao
- caractere identificadorparametros
- dependem do caractereprotocolo.txt
public JogadorHumano getJogadorHumano()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |