mt
Interface Estrategia

All Known Implementing Classes:
EstrategiaGasparotto, EstrategiaSellani, EstrategiaWillian

public interface Estrategia

Base para as estratégias "plugáveis" que um jogador CPU pode utilizar.

Uma estratégia é uma classe que implementa os métodos joga, aceitaTruco e aceitaMao11, que são chamados pelo jogo quando for a vez do jogador, quando pedirem aumento para a dupla dele e quando a dupla for decidir uma mão de 11, respectivamente.

Eses métodos recebem uma "fotografia" do jogo (SituacaoJogo) no momento em que a ação deles é demandada. Esta fotografia inclui todo o histórico da mão/rodada, placares, etc. Se for desejado guardar estado, o tempo de vida de uma estratégia é o mesmo de Jogo, ou seja, o estado (não-static) persistirá ao longo de uma partida, mas não entre partidas.

Para que a estratégia apareça no jogo, adicione uma instância dela ao array ESTRATEGIAS da classe Jogador.

O modo Confronto de Estratégias permite testar a sua estratégia contra as já existentes. Quando ela estiver boa, você pode contribui-la para o jogo (desde que concorde em licenciá-la através da GPLv3). Você será creditado e manterá seus direitos autorais.

Author:
Chester
See Also:
Jogador.ESTRATEGIAS

Method Summary
 boolean aceitaMao11(Carta[] cartasParceiro, SituacaoJogo s)
          Decide se aceita iniciar uma "mão de 11"
 boolean aceitaTruco(SituacaoJogo s)
          Decide se aceita um pedido de aumento.
 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 "copmpleto" 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.
 

Method Detail

getNomeEstrategia

java.lang.String getNomeEstrategia()
Retorna o nome "copmpleto" da Estrategia


getInfoEstrategia

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


joga

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.

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

boolean aceitaTruco(SituacaoJogo s)
Decide se aceita um pedido de aumento.

O valor do aumento pode ser determinado verificando o valor atual da partida (que ainda não foi aumentado)

Parameters:
s - Situação do jogo no momento
Returns:
true para aceitar, false para desistir

aceitaMao11

boolean aceitaMao11(Carta[] cartasParceiro,
                    SituacaoJogo s)
Decide se aceita iniciar uma "mão de 11"

Parameters:
cartasParceiro - cartas que o parceiro possui
Returns:
true para iniciar valendo 3 pontos, false para desistir e perder 1 ponto

inicioPartida

void inicioPartida()
Notifica que uma partida está começando.


inicioMao

void inicioMao()
Notifica que uma mão está começando


pediuAumentoAposta

void pediuAumentoAposta(int posJogador,
                        int valor)
Informa que um jogador pediu aumento de aposta (truco, seis, etc.).

Parameters:
posJogador - Jogador que pediu o aumento
valor - Quanto a rodada passará a valar se algum adversário aceitar

aceitouAumentoAposta

void aceitouAumentoAposta(int posJogador,
                          int valor)
Informa que o jogador aceitou um pedido de aumento de aposta.

Parameters:
posJogador - Jogador que aceitou o aumento
valor - Quanto a rodada está valendo agora

recusouAumentoAposta

void recusouAumentoAposta(int posJogador)
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.

Parameters:
posJogador - Jogador que recusou o pedido.