|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.
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 |
---|
java.lang.String getNomeEstrategia()
java.lang.String getInfoEstrategia()
int joga(SituacaoJogo s)
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.
s
- Situação do jogo no momento
boolean aceitaTruco(SituacaoJogo s)
O valor do aumento pode ser determinado verificando o valor atual da partida (que ainda não foi aumentado)
s
- Situação do jogo no momento
boolean aceitaMao11(Carta[] cartasParceiro, SituacaoJogo s)
cartasParceiro
- cartas que o parceiro possui
void inicioPartida()
void inicioMao()
void pediuAumentoAposta(int posJogador, int valor)
posJogador
- Jogador que pediu o aumentovalor
- Quanto a rodada passará a valar se algum adversário aceitarvoid aceitouAumentoAposta(int posJogador, int valor)
posJogador
- Jogador que aceitou o aumentovalor
- Quanto a rodada está valendo agoravoid recusouAumentoAposta(int posJogador)
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.
posJogador
- Jogador que recusou o pedido.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |