
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@263 72836036-5685-4462-b002-a69064685172
98 lines
1.8 KiB
Java
98 lines
1.8 KiB
Java
package jrummikub.model;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/** Class managing the overall and momentary RoundState */
|
|
public class RoundState implements IRoundState {
|
|
private GameSettings gameSettings;
|
|
|
|
private ITable table;
|
|
private List<Player> players;
|
|
private int activePlayer;
|
|
private StoneHeap gameHeap;
|
|
private IPlayer lastPlayer;
|
|
|
|
/**
|
|
* Create a new RoundState with an empty table
|
|
*
|
|
* @param gameSettings
|
|
* the game settings
|
|
*/
|
|
public RoundState(GameSettings gameSettings) {
|
|
this.gameSettings = gameSettings;
|
|
|
|
table = new Table();
|
|
players = new ArrayList<Player>();
|
|
|
|
for (PlayerSettings playerSettings : gameSettings.getPlayerList()) {
|
|
players.add(new Player(playerSettings));
|
|
}
|
|
|
|
activePlayer = 0;
|
|
gameHeap = new StoneHeap();
|
|
}
|
|
|
|
@Override
|
|
public ITable getTable() {
|
|
return table;
|
|
}
|
|
|
|
@Override
|
|
public void setTable(ITable table) {
|
|
this.table = table;
|
|
}
|
|
|
|
@Override
|
|
public int getPlayerCount() {
|
|
return players.size();
|
|
}
|
|
|
|
@Override
|
|
public void nextPlayer() {
|
|
activePlayer = (activePlayer + 1) % players.size();
|
|
}
|
|
|
|
@Override
|
|
public void setActivePlayerNumber(int i) {
|
|
int j = i % players.size();
|
|
if (j < 0) {
|
|
j += players.size();
|
|
}
|
|
activePlayer = j;
|
|
}
|
|
|
|
@Override
|
|
public IPlayer getNthNextPlayer(int i) {
|
|
int j = (activePlayer + i) % players.size();
|
|
if (j < 0) {
|
|
j += players.size();
|
|
}
|
|
return players.get(j);
|
|
}
|
|
|
|
@Override
|
|
public IPlayer getActivePlayer() {
|
|
return players.get(activePlayer);
|
|
}
|
|
|
|
@Override
|
|
public StoneHeap getGameHeap() {
|
|
return gameHeap;
|
|
}
|
|
|
|
@Override
|
|
public GameSettings getGameSettings() {
|
|
return gameSettings;
|
|
}
|
|
|
|
@Override
|
|
public void setLastPlayer(IPlayer lastPlayer) {
|
|
this.lastPlayer = lastPlayer;
|
|
}
|
|
|
|
@Override
|
|
public IPlayer getLastPlayer() {
|
|
return lastPlayer;
|
|
}
|
|
}
|