Solved conflicts
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@189 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
f247b3666b
commit
3f8853b3e6
2 changed files with 51 additions and 12 deletions
|
@ -1,6 +1,8 @@
|
|||
package jrummikub.control;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import jrummikub.model.IHand;
|
||||
|
@ -108,14 +110,14 @@ public class TurnControl {
|
|||
.add(new IListener1<StoneSet>() {
|
||||
@Override
|
||||
public void handle(StoneSet set) {
|
||||
leftConnectorClick(set);
|
||||
connectorClick(set, false);
|
||||
}
|
||||
}));
|
||||
connections.add(view.getTablePanel().getRightConnectorClickEvent()
|
||||
.add(new IListener1<StoneSet>() {
|
||||
@Override
|
||||
public void handle(StoneSet set) {
|
||||
rightConnectorClick(set);
|
||||
connectorClick(set, true);
|
||||
}
|
||||
}));
|
||||
|
||||
|
@ -195,12 +197,45 @@ public class TurnControl {
|
|||
view.setSelectedStones(selectedStones);
|
||||
}
|
||||
|
||||
private void leftConnectorClick(StoneSet set) {
|
||||
private void connectorClick(StoneSet set, boolean right) {
|
||||
List<Stone> stones = new LinkedList<Stone>();
|
||||
Position pos = table.getPosition(set);
|
||||
for (Stone stone : set) {
|
||||
stones.add(stone);
|
||||
}
|
||||
stones.removeAll(selectedStones);
|
||||
if (right) {
|
||||
Collections.reverse(stones);
|
||||
}
|
||||
pickUpSelectedStones();
|
||||
StoneSet newSet = null;
|
||||
for (Stone stone : stones) {
|
||||
newSet = table.findStoneSet(stone);
|
||||
if (newSet != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (newSet != null) {
|
||||
Position newPos = table.getPosition(newSet);
|
||||
table.pickUp(newSet);
|
||||
if (right) {
|
||||
StoneSet joinedSet = newSet.join(new StoneSet(selectedStones));
|
||||
table.drop(joinedSet, newPos);
|
||||
} else {
|
||||
StoneSet joinedSet = new StoneSet(selectedStones).join(newSet);
|
||||
table.drop(joinedSet, new Position(newPos.getX()
|
||||
- selectedStones.size(), newPos.getY()));
|
||||
}
|
||||
} else {
|
||||
table.drop(new StoneSet(selectedStones), new Position(pos.getX()
|
||||
+ (set.size() - selectedStones.size()) * 0.5f, pos.getY()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void rightConnectorClick(StoneSet set) {
|
||||
selectedStones.clear();
|
||||
|
||||
view.getTablePanel().setStoneSets(table);
|
||||
view.getPlayerPanel().getHandPanel().setStones(hand);
|
||||
view.setSelectedStones(selectedStones);
|
||||
}
|
||||
|
||||
private void endOfTurn() {
|
||||
|
|
|
@ -552,8 +552,10 @@ public class TurnControlTest {
|
|||
assertSame(newSet2.get(3), blackFour);
|
||||
assertSame(newSet2.get(4), blackFive);
|
||||
// versuche, links was wegzunehmen und wieder anzuhängen
|
||||
mockView.tablePanel.stoneClickEvent.emit(redOne, false);
|
||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, true);
|
||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
|
||||
mockView.tablePanel.stoneClickEvent.emit(redOne, true);
|
||||
mockView.tablePanel.leftConnectorClickEvent.emit(newSet2);
|
||||
|
||||
// handcheck
|
||||
assertEquals(0, mockHand.getSize());
|
||||
// tablecheck
|
||||
|
@ -569,8 +571,8 @@ public class TurnControlTest {
|
|||
assertEquals(7, newSet1.size());
|
||||
// setcheck2
|
||||
assertEquals(6, newSet2.size());
|
||||
assertSame(newSet2.get(0), redOne);
|
||||
assertSame(newSet2.get(1), blueFour);
|
||||
assertSame(newSet2.get(0), blueFour);
|
||||
assertSame(newSet2.get(1), redOne);
|
||||
assertSame(newSet2.get(2), redThree);
|
||||
assertSame(newSet2.get(3), blueTwo);
|
||||
assertSame(newSet2.get(4), blackFour);
|
||||
|
@ -666,8 +668,10 @@ public class TurnControlTest {
|
|||
assertSame(newSet2.get(3), redOne);
|
||||
assertSame(newSet2.get(4), redThree);
|
||||
// versuche, rechts was wegzunehmen und wieder anzuhängen
|
||||
mockView.tablePanel.stoneClickEvent.emit(redThree, false);
|
||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, true);
|
||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
|
||||
mockView.tablePanel.stoneClickEvent.emit(redThree, true);
|
||||
mockView.tablePanel.rightConnectorClickEvent.emit(newSet2);
|
||||
|
||||
// handcheck
|
||||
assertEquals(0, mockHand.getSize());
|
||||
// tablecheck
|
||||
|
|
Reference in a new issue