summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/model')
-rw-r--r--src/jrummikub/model/GameState.java24
-rw-r--r--src/jrummikub/model/IRoundState.java14
-rw-r--r--src/jrummikub/model/RoundState.java9
3 files changed, 44 insertions, 3 deletions
diff --git a/src/jrummikub/model/GameState.java b/src/jrummikub/model/GameState.java
new file mode 100644
index 0000000..4bb55bc
--- /dev/null
+++ b/src/jrummikub/model/GameState.java
@@ -0,0 +1,24 @@
+package jrummikub.model;
+
+/**
+ * Class that stores information for a game of multiple rounds
+ */
+public class GameState {
+ private int firstRoundFirstPlayer;
+
+ /**
+ * Gets the number of the first player of the first round
+ * @return the number of the first player of the first round
+ */
+ public int getFirstRoundFirstPlayer() {
+ return firstRoundFirstPlayer;
+ }
+
+ /**
+ * Sets the number of the first player of the first round
+ * @param firstRoundFirstPlayer the number of the first player of the first round
+ */
+ public void setFirstRoundFirstPlayer(int firstRoundFirstPlayer) {
+ this.firstRoundFirstPlayer = firstRoundFirstPlayer;
+ }
+}
diff --git a/src/jrummikub/model/IRoundState.java b/src/jrummikub/model/IRoundState.java
index dea225b..4dbcd9a 100644
--- a/src/jrummikub/model/IRoundState.java
+++ b/src/jrummikub/model/IRoundState.java
@@ -64,8 +64,7 @@ public interface IRoundState {
* Sets the player that will make the last turn before the round ends when
* the heap is empty
*
- * @param lastPlayer
- * the last player
+ * @return the last player
*/
public abstract IPlayer getLastPlayer();
@@ -73,8 +72,17 @@ public interface IRoundState {
* Gets the player that will make the last turn before the round ends when
* the heap is empty
*
- * @return lastPlayer the last player
+ * @param lastPlayer
+ * the last player
*/
public abstract void setLastPlayer(IPlayer lastPlayer);
+ /**
+ * Makes the player with number i the active player
+ *
+ * @param i
+ * number of the player to make active
+ */
+ public void setActivePlayerNumber(int i);
+
} \ No newline at end of file
diff --git a/src/jrummikub/model/RoundState.java b/src/jrummikub/model/RoundState.java
index 0bda737..076fd00 100644
--- a/src/jrummikub/model/RoundState.java
+++ b/src/jrummikub/model/RoundState.java
@@ -52,6 +52,15 @@ public class RoundState implements IRoundState {
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) {