p1.aplic.mancala.jogo
Interface JogoMancala

All Known Implementing Classes:
UmJogo

public interface JogoMancala

Interface de um jogo Mancala. O JogoMancala possui dois jogadores, um tabuleiro e sabe as regras do jogo. Objetos que implementam essa interface controlam o jogo e repassam eventos importantes para a interface com o usuário. Para jogar, o método umaJogada() deve ser chamada até que fimDeJogo() retorne true.

Version:
1.0
Copyright (C) 2001 Universidade Federal da Paraíba.
Author:
Jacques Philippe Sauvé, jacques@dsc.ufpb.br

Field Summary
static int COM_EVENTO
          Constante usa para pedir uma jogada do jogo com geração de eventos de interface
static int SEM_EVENTO
          Constante usa para pedir uma jogada do jogo sem gerar eventos de interface (Está fedendo: preciso refatorar isso)
 
Method Summary
 void addMancalaListener(MancalaListener listener)
          Adiciona um listener interessado em receber eventos do jogo.
 boolean fimDeJogo()
          Verifica se o jogo acabou.
 Jogador getGanhador()
          Obtém o jogador que ganhou a partida.
 Jogador getJogador(int númeroDoJogador)
          Obtém um jogador através do seu número.
 Jogador getJogadorAtual()
          Obtem o jogador cuja vez é de jogar.
 Buraco getKalaha(Jogador jogador)
          Obtem a Kalaha do jogador indicado.
 Tabuleiro getTabuleiro()
          Obtém o tabuleiro sendo usado para o jogo.
 void iniciaJogo()
          Avisa ao jogo que queremos iniciar.
 void setTabuleiro(Tabuleiro tabuleiro)
          Altera o tabuleiro sendo usado para o jogo.
 Jogador umaJogada(int indexBuraco, int querEvento)
          Faz uma jogada para o jogadorAtual do jogo no buraco indicado por indexBuraco.
 

Field Detail

SEM_EVENTO

public static final int SEM_EVENTO
Constante usa para pedir uma jogada do jogo sem gerar eventos de interface (Está fedendo: preciso refatorar isso)

COM_EVENTO

public static final int COM_EVENTO
Constante usa para pedir uma jogada do jogo com geração de eventos de interface
Method Detail

iniciaJogo

public void iniciaJogo()
Avisa ao jogo que queremos iniciar.

fimDeJogo

public boolean fimDeJogo()
Verifica se o jogo acabou.
Returns:
true, se o jogo acabou; false, caso contrário.

umaJogada

public Jogador umaJogada(int indexBuraco,
                         int querEvento)
                  throws MancalaException
Faz uma jogada para o jogadorAtual do jogo no buraco indicado por indexBuraco.
Parameters:
indexBuraco - O índice (de 0 a 5) do buraco escolhido.
querEvento - igual a SEM_EVENTO, para uma jogada que não aparecer na interface com o usuário. Seria o caso para estratégias de jogadores automatizados que querem tentar várias jogadas. Uma jogada normal (com efeito total) usa COM_EVENTO.
Returns:
O próximo jogador a jogar.
Throws:
MancalaException - se um buraco ilegal for escolhido.

getGanhador

public Jogador getGanhador()
Obtém o jogador que ganhou a partida.
Returns:
O jogador que ganhou a partida, ou null se tiver sido empate.

getJogador

public Jogador getJogador(int númeroDoJogador)
Obtém um jogador através do seu número. O jogador de baixo é 0, o de cima é 1.
Parameters:
númeroDoJogador - o número do jogador (0 = em baixo, 1 = em cima).
Returns:
O jogador indicado.

getJogadorAtual

public Jogador getJogadorAtual()
Obtem o jogador cuja vez é de jogar.
Returns:
O jogador cuja vez é de jogar.

getKalaha

public Buraco getKalaha(Jogador jogador)
Obtem a Kalaha do jogador indicado.
Parameters:
jogador - O jogador cuja Kalaha se deseja.
Returns:
Uma referência ao buraco representando a Kalaha do jogador.

getTabuleiro

public Tabuleiro getTabuleiro()
Obtém o tabuleiro sendo usado para o jogo.
Returns:
O tabuleiro sendo usado para o jogo.

setTabuleiro

public void setTabuleiro(Tabuleiro tabuleiro)
Altera o tabuleiro sendo usado para o jogo.
Parameters:
tabuleiro - O tabuleiro a usar.

addMancalaListener

public void addMancalaListener(MancalaListener listener)
Adiciona um listener interessado em receber eventos do jogo. Normalmente usado para conectar o jogo a uma interface com o usuário.
Parameters:
listener - O objeto que deseja receber os eventos do jogo.