mt
Class EstrategiaGasparotto

java.lang.Object
  extended by mt.EstrategiaGasparotto
All Implemented Interfaces:
Estrategia

public class EstrategiaGasparotto
extends java.lang.Object
implements Estrategia

Estratégia inteligente para jogadores CPU

Author:
Sandro Gasparotto

Field Summary
(package private)  int[] C
           
 
Constructor Summary
EstrategiaGasparotto()
           
 
Method Summary
 boolean aceitaMao11(Carta[] cartasParceiro, SituacaoJogo s)
          Retorna se eu aceito jogar ou não esta mão de 11.
 boolean aceitaTruco(SituacaoJogo s)
          Retorna se eu aceito o aumento da aposta dos adversários ou não.
 void aceitouAumentoAposta(int posJogador, int valor)
          Informa que o jogador aceitou um pedido de aumento de aposta.
 java.lang.String getInfoEstrategia()
          Retorna informações de copyright e afins
 java.lang.String getNomeEstrategia()
          Retorna o nome "de tela" da Estrategia
 void inicioMao()
          Notifica que uma mão está começando
 void inicioPartida()
          Notifica que uma partida está começando.
 int joga(SituacaoJogo s)
          Executa uma jogada.
 void pediuAumentoAposta(int posJogador, int valor)
          Informa que um jogador pediu aumento de aposta (truco, seis, etc.).
 void recusouAumentoAposta(int posJogador)
          Informa que o jogador recusou um pedido de aumento de aposta.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

C

int[] C
Constructor Detail

EstrategiaGasparotto

public EstrategiaGasparotto()
Method Detail

getNomeEstrategia

public java.lang.String getNomeEstrategia()
Retorna o nome "de tela" da Estrategia

Specified by:
getNomeEstrategia in interface Estrategia

getInfoEstrategia

public java.lang.String getInfoEstrategia()
Retorna informações de copyright e afins

Specified by:
getInfoEstrategia in interface Estrategia

joga

public int joga(SituacaoJogo s)
Executa uma jogada.

Observe que, ao pedir aumento, o sistema irá interagir com a outra dupla. Se a partida seguir, o método será chamado novamente para efetivar a real jogada.

A estratégia é responsável por checar se o valor da próxima aposta é diferente de 0 e só pedir aumento nesta situação.

Specified by:
joga in interface Estrategia
Parameters:
s - Situação do jogo no momento
Returns:
posição da carta na mão a jogar (em letrasCartasJogador), ou -1 para pedir truco

aceitaTruco

public boolean aceitaTruco(SituacaoJogo s)
Retorna se eu aceito o aumento da aposta dos adversários ou não. Uma melhoria seria checar se estão pedindo truco, seis, ... e tomar as decisões de acordo

Specified by:
aceitaTruco in interface Estrategia
Parameters:
s - Situação do jogo no momento
Returns:
true para aceitar, false para desistir

aceitaMao11

public boolean aceitaMao11(Carta[] cartasParceiro,
                           SituacaoJogo s)
Retorna se eu aceito jogar ou não esta mão de 11.

Specified by:
aceitaMao11 in interface Estrategia
Parameters:
cartasParceiro - cartas que o parceiro possui
Returns:
true para iniciar valendo 3 pontos, false para desistir e perder 1 ponto

inicioPartida

public void inicioPartida()
Description copied from interface: Estrategia
Notifica que uma partida está começando.

Specified by:
inicioPartida in interface Estrategia

inicioMao

public void inicioMao()
Description copied from interface: Estrategia
Notifica que uma mão está começando

Specified by:
inicioMao in interface Estrategia

pediuAumentoAposta

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

Specified by:
pediuAumentoAposta in interface Estrategia
Parameters:
posJogador - Jogador que pediu o aumento
valor - Quanto a rodada passará a valar se algum adversário aceitar

aceitouAumentoAposta

public void aceitouAumentoAposta(int posJogador,
                                 int valor)
Description copied from interface: Estrategia
Informa que o jogador aceitou um pedido de aumento de aposta.

Specified by:
aceitouAumentoAposta in interface Estrategia
Parameters:
posJogador - Jogador que aceitou o aumento
valor - Quanto a rodada está valendo agora

recusouAumentoAposta

public void recusouAumentoAposta(int posJogador)
Description copied from interface: Estrategia
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 interface Estrategia
Parameters:
posJogador - Jogador que recusou o pedido.