package jrummikub.model; /** * Interface for {@link GameState} model */ public interface IGameState { /** * Get the current {@link Table} * * @return The current Table */ public ITable getTable(); /** * Sets the current {@link Table} * * @param table * The new Table */ public void setTable(ITable table); /** * Returns the number of players * * @return number of players */ public int getPlayerCount(); /** Changes the activePlayer to the next {@link Player} in the list */ public void nextPlayer(); /** * Returns the currently active player * * @return currently active player */ public IPlayer getActivePlayer(); /** * Returns the heap of stones to draw from * * @return heap of stones */ public StoneHeap getGameHeap(); /** * Returns the player that would be the active player after i turns * * @param i * number of turns * @return player active after i turns */ public IPlayer getNthNextPlayer(int i); }