Test und implementierung von tableSetDifference, getestet und alles :-)

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@246 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Ida Massow 2011-05-16 22:24:11 +02:00
parent a4f5beb005
commit 46cf40c44f
2 changed files with 74 additions and 5 deletions

View file

@ -33,9 +33,9 @@ public class RoundControl {
* Create a new RoundControl using the given gameState and view
*
* @param gameState
* initial game state
* initial game state
* @param view
* view used for user interaction
* view used for user interaction
*/
public RoundControl(IGameState gameState, IView view) {
this.gameState = gameState;
@ -99,14 +99,17 @@ public class RoundControl {
for (int i = 0; i < gameState.getPlayerCount(); i++) {
IHand hand = gameState.getNthNextPlayer(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));
}
}
}
private void endOfTurn() {
Set<Stone> tableDiff = tableDifference(gameState.getTable(), clonedTable);
Set<Stone> tableDiff = tableDifference(gameState.getTable(),
clonedTable);
if (!tableDiff.isEmpty()) { // Player has made a move
if (clonedTable.isValid()) {
@ -145,7 +148,18 @@ public class RoundControl {
ret.remove(stone);
}
}
return ret;
}
static List<StoneSet> tableSetDifference(ITable oldTable, ITable newTable) {
List<StoneSet> ret = new ArrayList<StoneSet>();
for (Pair<StoneSet, Position> entry : newTable) {
ret.add(entry.getFirst());
}
for (Pair<StoneSet, Position> entry : oldTable) {
ret.remove(entry.getFirst());
}
return ret;
}