summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/model/Hand.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/model/Hand.java')
-rw-r--r--src/jrummikub/model/Hand.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/jrummikub/model/Hand.java b/src/jrummikub/model/Hand.java
index 644ae94..8864a17 100644
--- a/src/jrummikub/model/Hand.java
+++ b/src/jrummikub/model/Hand.java
@@ -1,10 +1,33 @@
package jrummikub.model;
+import jrummikub.util.Pair;
+
+import static jrummikub.model.StoneTray.Direction.*;
+
/** Class managing a {@link Player}'s {@link Stone}s */
public class Hand extends StoneTray<Stone> implements IHand {
@Override
- protected Position fixInvalidDrop(Stone stone, Position pos) {
- return null;
+ protected Pair<Position, Direction> fixInvalidDrop(Stone stone, Position pos,
+ Direction dir) {
+ float x = pos.getX();
+ float y = pos.getY();
+
+ if (x >= 0 && x <= 13) {
+ return null;
+ }
+ if (x < 0) {
+ if (y == 0) {
+ return new Pair<Position, Direction>(new Position(0, 0), RIGHT);
+ } else {
+ return new Pair<Position, Direction>(new Position(13, 0), LEFT);
+ }
+ } else {
+ if (y == 0) {
+ return new Pair<Position, Direction>(new Position(0, 1), RIGHT);
+ } else {
+ return new Pair<Position, Direction>(new Position(13, 1), LEFT);
+ }
+ }
}
}