diff options
author | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-05-16 22:24:11 +0200 |
---|---|---|
committer | Ida Massow <massow@informatik.uni-luebeck.de> | 2011-05-16 22:24:11 +0200 |
commit | 46cf40c44ff87e51e4ad6165b4371d61df3f21eb (patch) | |
tree | 84927d20c572b7bf6b3d5158402d86c67fa9ee1e /src/jrummikub/control | |
parent | a4f5beb00598f577598a0e39e4e1099d9ea6e1e6 (diff) | |
download | JRummikub-46cf40c44ff87e51e4ad6165b4371d61df3f21eb.tar JRummikub-46cf40c44ff87e51e4ad6165b4371d61df3f21eb.zip |
Test und implementierung von tableSetDifference, getestet und alles :-)
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@246 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r-- | src/jrummikub/control/RoundControl.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java index dad2e30..c46d402 100644 --- a/src/jrummikub/control/RoundControl.java +++ b/src/jrummikub/control/RoundControl.java @@ -33,9 +33,9 @@ public class RoundControl { * Create a new RoundControl using the given gameState and view * * @param gameState - * initial game state + * initial game state * @param view - * view used for user interaction + * view used for user interaction */ public RoundControl(IGameState gameState, IView view) { this.gameState = gameState; @@ -99,14 +99,17 @@ public class RoundControl { for (int i = 0; i < gameState.getPlayerCount(); i++) { IHand hand = gameState.getNthNextPlayer(i).getHand(); for (int j = 0; j < 7; j++) { - hand.drop(gameState.getGameHeap().drawStone(), new Position(j, 0)); - hand.drop(gameState.getGameHeap().drawStone(), new Position(j, 1)); + hand.drop(gameState.getGameHeap().drawStone(), new Position(j, + 0)); + hand.drop(gameState.getGameHeap().drawStone(), new Position(j, + 1)); } } } private void endOfTurn() { - Set<Stone> tableDiff = tableDifference(gameState.getTable(), clonedTable); + Set<Stone> tableDiff = tableDifference(gameState.getTable(), + clonedTable); if (!tableDiff.isEmpty()) { // Player has made a move if (clonedTable.isValid()) { @@ -145,7 +148,18 @@ public class RoundControl { ret.remove(stone); } } + return ret; + } + static List<StoneSet> tableSetDifference(ITable oldTable, ITable newTable) { + List<StoneSet> ret = new ArrayList<StoneSet>(); + + for (Pair<StoneSet, Position> entry : newTable) { + ret.add(entry.getFirst()); + } + for (Pair<StoneSet, Position> entry : oldTable) { + ret.remove(entry.getFirst()); + } return ret; } |