diff options
Diffstat (limited to 'mock/jrummikub/model')
-rw-r--r-- | mock/jrummikub/model/MockHand.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/mock/jrummikub/model/MockHand.java b/mock/jrummikub/model/MockHand.java index dc4dd04..994f7f5 100644 --- a/mock/jrummikub/model/MockHand.java +++ b/mock/jrummikub/model/MockHand.java @@ -8,7 +8,7 @@ import jrummikub.util.Pair; public class MockHand implements IHand { - public List<Stone> stones = new ArrayList<Stone>(); + public List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>(); public Iterable<Pair<Stone, Position>> iterable; @@ -19,7 +19,7 @@ public class MockHand implements IHand { @Override public void drop(Stone object, Position position) { - stones.add(object); + stones.add(new Pair<Stone, Position>(object, position)); } @Override @@ -30,7 +30,12 @@ public class MockHand implements IHand { @Override public void pickUp(Stone object) { - stones.remove(object); + List<Pair<Stone, Position>> itList = new ArrayList(stones); + for (Pair<Stone, Position> entry : itList) { + if (entry.getFirst() == object) { + stones.remove(entry); + } + } } @Override @@ -40,7 +45,11 @@ public class MockHand implements IHand { @Override public Iterator<Pair<Stone, Position>> iterator() { - return iterable.iterator(); + if (iterable != null) { + return iterable.iterator(); + } else { + return stones.iterator(); + } } public MockHand clone() { |