From 7ee737f0d38bd815dc26a81a440148beebb17385 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 5 May 2011 16:48:17 +0200 Subject: Implement tableDifference (and fix test...) git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@144 72836036-5685-4462-b002-a69064685172 --- src/jrummikub/control/RoundControl.java | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/jrummikub/control/RoundControl.java b/src/jrummikub/control/RoundControl.java index cce6160..1411337 100644 --- a/src/jrummikub/control/RoundControl.java +++ b/src/jrummikub/control/RoundControl.java @@ -1,5 +1,6 @@ package jrummikub.control; +import java.util.HashSet; import java.util.Set; import jrummikub.model.IGameState; @@ -7,7 +8,9 @@ import jrummikub.model.IHand; import jrummikub.model.ITable; import jrummikub.model.Position; import jrummikub.model.Stone; +import jrummikub.model.StoneSet; import jrummikub.util.IListener; +import jrummikub.util.Pair; import jrummikub.view.IView; public class RoundControl { @@ -52,10 +55,8 @@ public class RoundControl { for (int i = 0; i < gameState.getPlayerCount(); i++) { IHand hand = gameState.getPlayer(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)); } } } @@ -65,7 +66,20 @@ public class RoundControl { } static Set tableDifference(ITable oldTable, ITable newTable) { - return null; + Set ret = new HashSet(); + + for (Pair entry : newTable) { + for (Stone stone : entry.getFirst()) { + ret.add(stone); + } + } + for (Pair entry : oldTable) { + for (Stone stone : entry.getFirst()) { + ret.remove(stone); + } + } + + return ret; } private void resetTable() { -- cgit v1.2.3