diff options
Diffstat (limited to 'src/jrummikub/control')
-rw-r--r-- | src/jrummikub/control/RoundControl.java | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java index 71aad04..46ae459 100644 --- a/src/jrummikub/control/RoundControl.java +++ b/src/jrummikub/control/RoundControl.java @@ -36,9 +36,9 @@ public class RoundControl { * Create a new RoundControl using the given gameState and view * * @param roundState - * initial round state + * initial round state * @param view - * view used for user interaction + * view used for user interaction */ public RoundControl(IRoundState roundState, IView view) { this.roundState = roundState; @@ -75,14 +75,8 @@ public class RoundControl { clonedTable = (ITable) roundState.getTable().clone(); view.enableStartTurnPanel(true); view.getTablePanel().setStoneSets(clonedTable); - view.setCurrentPlayerName(roundState.getActivePlayer() - .getPlayerSettings().getName()); - view.getTablePanel().setLeftPlayerName( - roundState.getNthNextPlayer(1).getPlayerSettings().getName()); - view.getTablePanel().setTopPlayerName( - roundState.getNthNextPlayer(2).getPlayerSettings().getName()); - view.getTablePanel().setRightPlayerName( - roundState.getNthNextPlayer(3).getPlayerSettings().getName()); + view.setCurrentPlayerName(roundState.getActivePlayer().getPlayerSettings() + .getName()); } private void startTurn() { @@ -103,10 +97,8 @@ public class RoundControl { for (int i = 0; i < roundState.getPlayerCount(); i++) { IHand hand = roundState.getNthNextPlayer(i).getHand(); for (int j = 0; j < 7; j++) { - hand.drop(roundState.getGameHeap().drawStone(), new Position(j, - 0)); - hand.drop(roundState.getGameHeap().drawStone(), new Position(j, - 1)); + hand.drop(roundState.getGameHeap().drawStone(), new Position(j, 0)); + hand.drop(roundState.getGameHeap().drawStone(), new Position(j, 1)); } } } @@ -121,8 +113,7 @@ public class RoundControl { } return totalValue == 0 - || totalValue >= roundState.getGameSettings() - .getInitialMeldThreshold(); + || totalValue >= roundState.getGameSettings().getInitialMeldThreshold(); } private void endOfTurn() { @@ -158,8 +149,7 @@ public class RoundControl { } if (!roundState.getActivePlayer().getLaidOut()) { // Player touched forbidden stones - if (!tableSetDifference(clonedTable, roundState.getTable()) - .isEmpty()) { + if (!tableSetDifference(clonedTable, roundState.getTable()).isEmpty()) { rejectMove(); return; } @@ -168,8 +158,7 @@ public class RoundControl { return; } } - Set<Stone> tableDiff = tableDifference(roundState.getTable(), - clonedTable); + Set<Stone> tableDiff = tableDifference(roundState.getTable(), clonedTable); roundState.setTable(clonedTable); @@ -185,8 +174,7 @@ public class RoundControl { } private void rejectMove() { - Set<Stone> tableDiff = tableDifference(roundState.getTable(), - clonedTable); + Set<Stone> tableDiff = tableDifference(roundState.getTable(), clonedTable); // deal penalty, reset roundState.getGameHeap().putBack(tableDiff); dealPenalty(tableDiff.size()); @@ -258,7 +246,8 @@ public class RoundControl { boolean foundRegularWinner = false; int winnerPlayerNumber = 0; - Pair<Integer, Integer> bestScore = new Pair<Integer, Integer>(Integer.MIN_VALUE, Integer.MAX_VALUE); + Pair<Integer, Integer> bestScore = new Pair<Integer, Integer>( + Integer.MIN_VALUE, Integer.MAX_VALUE); int pointSum = 0; for (int i = 0; i < roundState.getPlayerCount(); i++) { IPlayer player = roundState.getNthPlayer(i); @@ -276,9 +265,9 @@ public class RoundControl { } else { stonePoints = playerHand.getStonePoints(); } - + bestScore = updateBestScore(bestScore, -stonePoints, playerHand.getSize()); - + points.add(-stonePoints); pointSum += stonePoints; } @@ -287,7 +276,8 @@ public class RoundControl { points.set(winnerPlayerNumber, pointSum); } else { for (int i = 0; i < roundState.getPlayerCount(); i++) { - if (bestScore.equals(new Pair<Integer, Integer>(points.get(i), roundState.getNthPlayer(i).getHand().getSize()))) { + if (bestScore.equals(new Pair<Integer, Integer>(points.get(i), + roundState.getNthPlayer(i).getHand().getSize()))) { winners.set(i, true); } } @@ -298,7 +288,8 @@ public class RoundControl { private static Pair<Integer, Integer> updateBestScore( Pair<Integer, Integer> bestScore, int stonePoints, int size) { if (bestScore.getFirst() == stonePoints) { - return new Pair<Integer, Integer>(stonePoints, Math.min(bestScore.getSecond(), size)); + return new Pair<Integer, Integer>(stonePoints, Math.min( + bestScore.getSecond(), size)); } else if (bestScore.getFirst() < stonePoints) { return new Pair<Integer, Integer>(stonePoints, size); } |