diff options
author | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-29 18:50:54 +0200 |
---|---|---|
committer | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-29 18:50:54 +0200 |
commit | 699a0b0a2933237039b9b6ac545cc05a34644399 (patch) | |
tree | 167f3805cc6c317245003667346de46b43aba80c /src/jrummikub/model | |
parent | bf8aa23758385601c2fc8f5f7e37b9b3211010cb (diff) | |
download | JRummikub-699a0b0a2933237039b9b6ac545cc05a34644399.tar JRummikub-699a0b0a2933237039b9b6ac545cc05a34644399.zip |
Deal the correct number of jokers aka funny joker action
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@303 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/model')
-rw-r--r-- | src/jrummikub/model/RoundState.java | 2 | ||||
-rw-r--r-- | src/jrummikub/model/StoneHeap.java | 23 |
2 files changed, 20 insertions, 5 deletions
diff --git a/src/jrummikub/model/RoundState.java b/src/jrummikub/model/RoundState.java index 65bc120..9f1f7be 100644 --- a/src/jrummikub/model/RoundState.java +++ b/src/jrummikub/model/RoundState.java @@ -33,7 +33,7 @@ public class RoundState implements IRoundState { turnNumber = 1-gameSettings.getPlayerList().size(); activePlayer = 0; - gameHeap = new StoneHeap(); + gameHeap = new StoneHeap(gameSettings); } @Override diff --git a/src/jrummikub/model/StoneHeap.java b/src/jrummikub/model/StoneHeap.java index 048f6e7..4ccb427 100644 --- a/src/jrummikub/model/StoneHeap.java +++ b/src/jrummikub/model/StoneHeap.java @@ -1,6 +1,7 @@ package jrummikub.model; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; import java.util.List; @@ -14,9 +15,9 @@ import java.util.Random; public class StoneHeap { List<Stone> heap; private Random generator = new Random(); - + /** Creates 106 Stones according to standard rules */ - public StoneHeap() { + public StoneHeap(GameSettings gameSettings) { heap = new ArrayList<Stone>(); for (int i = 1; i <= 13; i++) { for (int j = 0; j < 2; j++) { @@ -26,8 +27,22 @@ public class StoneHeap { } } // Joker - heap.add(new Stone(StoneColor.BLACK)); - heap.add(new Stone(StoneColor.RED)); + + ArrayList<StoneColor> jokerColors = new ArrayList<StoneColor>(Arrays.asList(StoneColor.values())); + + StoneColor temp = jokerColors.get(0); + jokerColors.set(0, jokerColors.get(2)); + jokerColors.set(2, temp); + + int jokersLeft = gameSettings.getJokerNumber(); + done : while(true) { + for (StoneColor c : jokerColors) { + if (jokersLeft == 0) + break done; + heap.add(new Stone(c)); + jokersLeft--; + } + } } /** |