diff options
Diffstat (limited to 'src/jrummikub/model/Hand.java')
-rw-r--r-- | src/jrummikub/model/Hand.java | 27 |
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); + } + } } } |