mt
Class Mesa

java.lang.Object
  extended by javax.microedition.lcdui.Displayable
      extended by javax.microedition.lcdui.Canvas
          extended by mt.Mesa
All Implemented Interfaces:
java.lang.Runnable

public class Mesa
extends javax.microedition.lcdui.Canvas
implements java.lang.Runnable

Mostra a mesa de jogo (fundo verde, cartas, placares, etc.), além da animação de abertura.

Obs.: O ideal seria que a abertura estivesse em uma classe separada - e que ambas respondessem por seus eventos de menu (ao invés de deixar a classe MiniTruco fazer isso). Só percebi isso quando fui adicionar uma terceira tela (Sala, do multiplayer). Coisas do aprendizado - um dia desses eu separo.

Author:
Chester

Field Summary
 int aberturaAlturaSas
           
 int aberturaNumCartas
           
 boolean aberturaUrlVisivel
           
 java.util.Vector baralhoCenario
          Cartas que compõem o baralhinho desenhado no cenário.
 Carta cartaVencedora
          Carta em destaque (é desenhada em primeiro lugar com uma firula)
static javax.microedition.lcdui.Font fonteBalao
           
static javax.microedition.lcdui.Font fontePlacar
           
protected  javax.microedition.lcdui.Image[] iconesRodadas
          ícones que mostram o status das rodadas jogadas (vitória, empate, derrota ou não-jogada)
 boolean isAppRodando
           
static int MARGEM
          Margem entre a mesa e as cartas
(package private)  boolean mostraNomes
           
(package private)  int[] placar
           
(package private)  int[] placarPartidas
           
(package private)  int posicaoBalao
           
(package private) static java.lang.String STRING_DA
           
(package private) static java.lang.String STRING_DB
           
(package private) static java.lang.String STRING_ELES
           
(package private) static java.lang.String STRING_NOS
           
(package private)  java.lang.String[] stringPlacar
           
(package private)  java.lang.String textoBalao
           
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Constructor Summary
Mesa(boolean vaiAnimar)
          Cria uma nova mesa
 
Method Summary
 void adicionaComandoAposta(int valorProximaAposta)
           
 void adicionaOpcoesAceite()
           
 void adicionaOpcoesMao11()
           
 void animaAbertura()
          Executa a animação de abertura
 void atualizaPlacar(int nos, int eles)
           
 void atualizaPlacarComVaquinhasInfo(int nos, int eles, int vaquinhasNoPastoDplA, int vaquinhasNoPastoDplB)
           
 void balao(int posicao, java.lang.String texto, int tempo)
           
 void descarta(Carta c, int posicao)
          Joga a carta no meio da mesa, marcando-a como jogada.
 void distribui(Carta c, int numJogador, int i)
          Entrega uma carta na posição apropriada
 void distribuiCartaDaMesa(Carta c)
           
 void escondeCartasParceiro()
          Esconde as cartas do parceiro (usado após definir se a mão de 11 segue)
 void executaComando(javax.microedition.lcdui.Command cmd)
          Executa comandos do jogo a partir de uma nova thread (permitindo que o jogador responda assíncronamente com os outros).
 java.util.Vector getCartas()
           
 Carta getCartaSelecionada()
           
 java.util.Vector getCartasSelecionaveis()
           
protected static javax.microedition.lcdui.Image getIconeRodada(int tipo)
          Recupera o ícone correspondente ao resultado da rodada
(package private)  JogadorHumano getJogador()
           
(package private)  JogadorBot getJogadorBot()
           
 boolean isAberturaVisivel()
           
 boolean isJogada(Carta c)
          Verifica se uma carta já foi jogada na mesa
protected  void keyPressed(int tecla)
           
 void limpa()
           
 void limpaPlacar()
           
 void montaBaralhoCenario()
           
 void mostraCartasParceiro(Carta[] cartasParceiro)
          Mostra as cartas do parceiro (em uma mão de 11)
 void mostraFinalAbertura()
          Mostra a tela final da abertura, com os elementos já posicionados
 void mostraMenuFimPartida()
          Ajusta o menu para quando a partida acaba.
 void mostraNomesJogadores(int tempoMs)
          Mostra os nomes dos jogadores.
 void mostraResultadoFinalModoCE(int vaquinhasNoPastodplA, int vaquinhasNoPastodplB)
          Mostra o placar das partidas (somente para o modo confronto de estratégias)
 void mostraTextoPiscando(java.lang.String texto)
          Habilita/desliga texto piscando
protected  void paint(javax.microedition.lcdui.Graphics g)
          Atualiza a tela do jogo
protected  void pointerDragged(int x, int y)
          Garante que se a caneta for arrastada, a carta selecionada muda
protected  void pointerPressed(int x, int y)
          Se a carta for tocada com a caneta/mouse, seleciona-a
protected  void pointerReleased(int x, int y)
          Se a caneta/mouse for solta sobre a carta selecionada, seleciona-a
 void removeComandoAposta()
           
 void removeOpcoesAceite()
           
 void removeOpcoesMao11()
           
 void retomaVezDepoisDoAumento()
          Permite ao jogador fazer o seu descarte após a situação de aumento de aposta ter se resolvido.
 void run()
           
 void setAberturaVisivel(boolean logoVisivel)
           
 void setCartas(java.util.Vector cartas)
           
 void setCartaSelecionada(Carta cartaSelecionada)
           
 void setCartasSelecionaveis(java.util.Vector cartasSelecionaveis)
           
 void setJogador(JogadorHumano jogador)
          Informa a mesa o jogador que está acoplado a ela.
 void setJogadorBot(JogadorBot jogador)
          Informa à mesa o bot que jogará nela (mudando o modo para Confronto de Estratégias)
 void setModoCE(boolean modoCE)
          Ajusta a mesa para o modo normal ou confronto.
 void setPodeFechada(boolean podeFechada)
           
 void setPosicaoDaVez(int posicaoDaVez)
          Determina qual posição da tela (não confundir com número do jogador no jogo) está com a "vez" (para desenhar o indicador)
 void setStatusMao(int numRodada, int status)
          Atualiza o placar informando o status de uma rodada Tem uma animaçãozinha aqui.
 void suspendeVezParaAumento()
          Impede que o jogador descarte enquanto está aguardando uma resposta de pedido de aumento de aposta
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getHeight, getKeyCode, getKeyName, getWidth, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyReleased, keyRepeated, repaint, repaint, serviceRepaints, showNotify
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, isShown, removeCommand, setCommandListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MARGEM

public static final int MARGEM
Margem entre a mesa e as cartas

See Also:
Constant Field Values

baralhoCenario

public java.util.Vector baralhoCenario
Cartas que compõem o baralhinho desenhado no cenário.

(não confundir com a classe Baralho, usada pela classe Jogo para sortear cartas)


aberturaAlturaSas

public int aberturaAlturaSas

aberturaNumCartas

public int aberturaNumCartas

aberturaUrlVisivel

public boolean aberturaUrlVisivel

fontePlacar

public static javax.microedition.lcdui.Font fontePlacar

fonteBalao

public static javax.microedition.lcdui.Font fonteBalao

stringPlacar

java.lang.String[] stringPlacar

mostraNomes

boolean mostraNomes

placar

int[] placar

placarPartidas

int[] placarPartidas

STRING_NOS

static final java.lang.String STRING_NOS

STRING_ELES

static final java.lang.String STRING_ELES

STRING_DA

static final java.lang.String STRING_DA
See Also:
Constant Field Values

STRING_DB

static final java.lang.String STRING_DB
See Also:
Constant Field Values

iconesRodadas

protected javax.microedition.lcdui.Image[] iconesRodadas
ícones que mostram o status das rodadas jogadas (vitória, empate, derrota ou não-jogada)


textoBalao

java.lang.String textoBalao

posicaoBalao

int posicaoBalao

isAppRodando

public boolean isAppRodando

cartaVencedora

public Carta cartaVencedora
Carta em destaque (é desenhada em primeiro lugar com uma firula)

Constructor Detail

Mesa

public Mesa(boolean vaiAnimar)
Cria uma nova mesa

Parameters:
vaiAnimar - Se true, esconde a abertura (para mostrar na animação). Se false, já mostra a abertura finalizada.
Method Detail

animaAbertura

public void animaAbertura()
Executa a animação de abertura


montaBaralhoCenario

public void montaBaralhoCenario()

setCartas

public void setCartas(java.util.Vector cartas)

getCartas

public java.util.Vector getCartas()

isJogada

public boolean isJogada(Carta c)
Verifica se uma carta já foi jogada na mesa

Parameters:
c - Carta a verificar

setJogador

public void setJogador(JogadorHumano jogador)
Informa a mesa o jogador que está acoplado a ela.

Isso é feito quando o JogadorHumano é construído

Parameters:
jogador -

getJogador

JogadorHumano getJogador()

mostraNomesJogadores

public void mostraNomesJogadores(int tempoMs)
Mostra os nomes dos jogadores.

Parameters:
tempoMs - Tempo em que eles serão exibidos (em milissegundos)

setJogadorBot

public void setJogadorBot(JogadorBot jogador)
Informa à mesa o bot que jogará nela (mudando o modo para Confronto de Estratégias)

Parameters:
jogador -

setModoCE

public void setModoCE(boolean modoCE)
Ajusta a mesa para o modo normal ou confronto.

Parameters:
modoCE - true para modo Confronto de Estratégias, false para jogo normal

getJogadorBot

JogadorBot getJogadorBot()

atualizaPlacar

public void atualizaPlacar(int nos,
                           int eles)

atualizaPlacarComVaquinhasInfo

public void atualizaPlacarComVaquinhasInfo(int nos,
                                           int eles,
                                           int vaquinhasNoPastoDplA,
                                           int vaquinhasNoPastoDplB)

mostraResultadoFinalModoCE

public void mostraResultadoFinalModoCE(int vaquinhasNoPastodplA,
                                       int vaquinhasNoPastodplB)
Mostra o placar das partidas (somente para o modo confronto de estratégias)

Parameters:
jogador -

limpaPlacar

public void limpaPlacar()

paint

protected void paint(javax.microedition.lcdui.Graphics g)
Atualiza a tela do jogo

Specified by:
paint in class javax.microedition.lcdui.Canvas

setCartaSelecionada

public void setCartaSelecionada(Carta cartaSelecionada)

getCartaSelecionada

public Carta getCartaSelecionada()

keyPressed

protected void keyPressed(int tecla)
Overrides:
keyPressed in class javax.microedition.lcdui.Canvas

setCartasSelecionaveis

public void setCartasSelecionaveis(java.util.Vector cartasSelecionaveis)

getCartasSelecionaveis

public java.util.Vector getCartasSelecionaveis()

setAberturaVisivel

public void setAberturaVisivel(boolean logoVisivel)

isAberturaVisivel

public boolean isAberturaVisivel()

descarta

public void descarta(Carta c,
                     int posicao)
Joga a carta no meio da mesa, marcando-a como jogada.

Parameters:
c -

distribuiCartaDaMesa

public void distribuiCartaDaMesa(Carta c)

distribui

public void distribui(Carta c,
                      int numJogador,
                      int i)
Entrega uma carta na posição apropriada

Parameters:
numJogador - Posição do jogador, de 1 a 4 (1 = humano).
i - posição da carta na mão do jogador (0 a 2)

mostraCartasParceiro

public void mostraCartasParceiro(Carta[] cartasParceiro)
Mostra as cartas do parceiro (em uma mão de 11)

Parameters:
cartasParceiro - Cartas do parceiro

escondeCartasParceiro

public void escondeCartasParceiro()
Esconde as cartas do parceiro (usado após definir se a mão de 11 segue)


limpa

public void limpa()

setStatusMao

public void setStatusMao(int numRodada,
                         int status)
Atualiza o placar informando o status de uma rodada

Tem uma animaçãozinha aqui.

Parameters:
numRodada - rodada que queremos informar (1, 2 ou 3)
status - 1=vitória, 2=derrota, 3=empate (0=limpa, mas a mesa limpa sozinha)

getIconeRodada

protected static javax.microedition.lcdui.Image getIconeRodada(int tipo)
Recupera o ícone correspondente ao resultado da rodada

Parameters:
i - 0=vazio; 1=vitória; 2=derrota; 3=empate
Returns:

adicionaComandoAposta

public void adicionaComandoAposta(int valorProximaAposta)

removeComandoAposta

public void removeComandoAposta()

adicionaOpcoesAceite

public void adicionaOpcoesAceite()

removeOpcoesAceite

public void removeOpcoesAceite()

adicionaOpcoesMao11

public void adicionaOpcoesMao11()

removeOpcoesMao11

public void removeOpcoesMao11()

mostraMenuFimPartida

public void mostraMenuFimPartida()
Ajusta o menu para quando a partida acaba.

Em jogos stand-alone e no sevidor TCP, isso significa trocar o comando Encerrar (que pede confirmação) pelo Fim (que volta direto ao menu, ou, no caso do servidor, à tela da sala).

Em jogos onde o celular é um cliente Bluetooth, apenas removemos o comando Encerrar - é quebra de padrão não dar uma opção de encerramento *apenas* neste momento, mas é melhor que arriscar que o jogador se desconecte sem querer.


balao

public void balao(int posicao,
                  java.lang.String texto,
                  int tempo)

pointerPressed

protected void pointerPressed(int x,
                              int y)
Se a carta for tocada com a caneta/mouse, seleciona-a

Overrides:
pointerPressed in class javax.microedition.lcdui.Canvas

pointerDragged

protected void pointerDragged(int x,
                              int y)
Garante que se a caneta for arrastada, a carta selecionada muda

Overrides:
pointerDragged in class javax.microedition.lcdui.Canvas

pointerReleased

protected void pointerReleased(int x,
                               int y)
Se a caneta/mouse for solta sobre a carta selecionada, seleciona-a

Overrides:
pointerReleased in class javax.microedition.lcdui.Canvas

mostraTextoPiscando

public void mostraTextoPiscando(java.lang.String texto)
Habilita/desliga texto piscando

Parameters:
texto - Texto a piscar, ou null para desligar

setPodeFechada

public void setPodeFechada(boolean podeFechada)
Parameters:
podeFechada - The podeFechada to set.

setPosicaoDaVez

public void setPosicaoDaVez(int posicaoDaVez)
Determina qual posição da tela (não confundir com número do jogador no jogo) está com a "vez" (para desenhar o indicador)

Parameters:
posicaoDaVez - 1=inferior, 2=direita, 3=superior, 4=esquerda
See Also:
JogadorHumano.posicaoNaTela(Jogador)

suspendeVezParaAumento

public void suspendeVezParaAumento()
Impede que o jogador descarte enquanto está aguardando uma resposta de pedido de aumento de aposta


retomaVezDepoisDoAumento

public void retomaVezDepoisDoAumento()
Permite ao jogador fazer o seu descarte após a situação de aumento de aposta ter se resolvido.


mostraFinalAbertura

public void mostraFinalAbertura()
Mostra a tela final da abertura, com os elementos já posicionados


executaComando

public void executaComando(javax.microedition.lcdui.Command cmd)
Executa comandos do jogo a partir de uma nova thread (permitindo que o jogador responda assíncronamente com os outros).

Era parte da classe ThreadComandoMenu (foi movido para cá para reduzir o .jar)


run

public void run()
Specified by:
run in interface java.lang.Runnable
See Also:
executaComando(Command)