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;
|
package jrummikub.control;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import jrummikub.model.IHand;
|
import jrummikub.model.IHand;
|
||||||
|
@ -108,14 +110,14 @@ public class TurnControl {
|
||||||
.add(new IListener1<StoneSet>() {
|
.add(new IListener1<StoneSet>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(StoneSet set) {
|
public void handle(StoneSet set) {
|
||||||
leftConnectorClick(set);
|
connectorClick(set, false);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
connections.add(view.getTablePanel().getRightConnectorClickEvent()
|
connections.add(view.getTablePanel().getRightConnectorClickEvent()
|
||||||
.add(new IListener1<StoneSet>() {
|
.add(new IListener1<StoneSet>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(StoneSet set) {
|
public void handle(StoneSet set) {
|
||||||
rightConnectorClick(set);
|
connectorClick(set, true);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@ -195,12 +197,45 @@ public class TurnControl {
|
||||||
view.setSelectedStones(selectedStones);
|
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()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
selectedStones.clear();
|
||||||
|
|
||||||
private void rightConnectorClick(StoneSet set) {
|
|
||||||
|
|
||||||
|
view.getTablePanel().setStoneSets(table);
|
||||||
|
view.getPlayerPanel().getHandPanel().setStones(hand);
|
||||||
|
view.setSelectedStones(selectedStones);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void endOfTurn() {
|
private void endOfTurn() {
|
||||||
|
|
|
@ -552,8 +552,10 @@ public class TurnControlTest {
|
||||||
assertSame(newSet2.get(3), blackFour);
|
assertSame(newSet2.get(3), blackFour);
|
||||||
assertSame(newSet2.get(4), blackFive);
|
assertSame(newSet2.get(4), blackFive);
|
||||||
// versuche, links was wegzunehmen und wieder anzuhängen
|
// versuche, links was wegzunehmen und wieder anzuhängen
|
||||||
mockView.tablePanel.stoneClickEvent.emit(redOne, false);
|
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
|
||||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, true);
|
mockView.tablePanel.stoneClickEvent.emit(redOne, true);
|
||||||
|
mockView.tablePanel.leftConnectorClickEvent.emit(newSet2);
|
||||||
|
|
||||||
// handcheck
|
// handcheck
|
||||||
assertEquals(0, mockHand.getSize());
|
assertEquals(0, mockHand.getSize());
|
||||||
// tablecheck
|
// tablecheck
|
||||||
|
@ -569,8 +571,8 @@ public class TurnControlTest {
|
||||||
assertEquals(7, newSet1.size());
|
assertEquals(7, newSet1.size());
|
||||||
// setcheck2
|
// setcheck2
|
||||||
assertEquals(6, newSet2.size());
|
assertEquals(6, newSet2.size());
|
||||||
assertSame(newSet2.get(0), redOne);
|
assertSame(newSet2.get(0), blueFour);
|
||||||
assertSame(newSet2.get(1), blueFour);
|
assertSame(newSet2.get(1), redOne);
|
||||||
assertSame(newSet2.get(2), redThree);
|
assertSame(newSet2.get(2), redThree);
|
||||||
assertSame(newSet2.get(3), blueTwo);
|
assertSame(newSet2.get(3), blueTwo);
|
||||||
assertSame(newSet2.get(4), blackFour);
|
assertSame(newSet2.get(4), blackFour);
|
||||||
|
@ -666,8 +668,10 @@ public class TurnControlTest {
|
||||||
assertSame(newSet2.get(3), redOne);
|
assertSame(newSet2.get(3), redOne);
|
||||||
assertSame(newSet2.get(4), redThree);
|
assertSame(newSet2.get(4), redThree);
|
||||||
// versuche, rechts was wegzunehmen und wieder anzuhängen
|
// versuche, rechts was wegzunehmen und wieder anzuhängen
|
||||||
mockView.tablePanel.stoneClickEvent.emit(redThree, false);
|
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, false);
|
||||||
mockView.playerPanel.handPanel.stoneClickEvent.emit(blueFour, true);
|
mockView.tablePanel.stoneClickEvent.emit(redThree, true);
|
||||||
|
mockView.tablePanel.rightConnectorClickEvent.emit(newSet2);
|
||||||
|
|
||||||
// handcheck
|
// handcheck
|
||||||
assertEquals(0, mockHand.getSize());
|
assertEquals(0, mockHand.getSize());
|
||||||
// tablecheck
|
// tablecheck
|
||||||
|
|
Reference in a new issue