summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/model/RoundState.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/model/RoundState.java')
-rw-r--r--src/jrummikub/model/RoundState.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/jrummikub/model/RoundState.java b/src/jrummikub/model/RoundState.java
new file mode 100644
index 0000000..82d93b0
--- /dev/null
+++ b/src/jrummikub/model/RoundState.java
@@ -0,0 +1,62 @@
+package jrummikub.model;
+
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.List;
+
+/** Class managing the overall and momentary GameState */
+public class RoundState implements IRoundState {
+ private ITable table;
+ private List<Player> players;
+ private int activePlayer;
+ private StoneHeap gameHeap;
+
+ /**
+ * Create a new GameState with an empty table and (currently) 4 new players.
+ */
+ public RoundState() {
+ table = new Table();
+ players = new ArrayList<Player>();
+ players.add(new Player("Ida", Color.RED));
+ players.add(new Player("Matthias", Color.YELLOW));
+ players.add(new Player("Jannis", Color.GREEN));
+ players.add(new Player("Bennet", Color.BLACK));
+ 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 IPlayer getNthNextPlayer(int i) {
+ return players.get((activePlayer + i) % players.size());
+ }
+
+ @Override
+ public IPlayer getActivePlayer() {
+ return players.get(activePlayer);
+ }
+
+ @Override
+ public StoneHeap getGameHeap() {
+ return gameHeap;
+ }
+}