summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/model
diff options
context:
space:
mode:
authorJannis Harder <harder@informatik.uni-luebeck.de>2011-05-29 18:50:54 +0200
committerJannis Harder <harder@informatik.uni-luebeck.de>2011-05-29 18:50:54 +0200
commit699a0b0a2933237039b9b6ac545cc05a34644399 (patch)
tree167f3805cc6c317245003667346de46b43aba80c /src/jrummikub/model
parentbf8aa23758385601c2fc8f5f7e37b9b3211010cb (diff)
downloadJRummikub-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.java2
-rw-r--r--src/jrummikub/model/StoneHeap.java23
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--;
+ }
+ }
}
/**