diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java index fa45fd75..a86839a9 100644 --- a/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java +++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/client/EditorState.java @@ -305,14 +305,14 @@ private boolean inBounds(ShipMapDTO dto) { * @return true if the ship is within bounds, false otherwise */ private boolean isWithinBounds(Battleship ship, int width, int height) { - int x1 = ship.getX(); - int y1 = ship.getY(); - Rotation r = ship.getRot(); - int x2 = x1 + ship.getLength() * r.dx(); - int y2 = y1 + ship.getLength() * r.dy(); - - return x1 >= 0 && y1 >= 0 && x1 <= width && y1 <= height && - x2 >= 0 && y2 >= 0 && x2 <= width && y2 <= height; + int minX = ship.getMinX(); + int maxX = ship.getMaxX(); + int minY = ship.getMinY(); + int maxY = ship.getMaxY(); + return minX >= 0 && minX < width && + minY >= 0 && minY < height && + maxX >= 0 && maxX < width && + maxY >= 0 && maxY < height; } /** diff --git a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java index b0e07049..83cea154 100644 --- a/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java +++ b/Projekte/battleship/model/src/main/java/pp/battleship/game/server/ServerGameLogic.java @@ -185,14 +185,16 @@ private boolean inBounds(List ships) { * @return true if the ship is within bounds, false otherwise */ private boolean isWithinBounds(Battleship ship) { - int x1 = ship.getX(); - int y1 = ship.getY(); - Rotation r = ship.getRot(); - int x2 = x1 + ship.getLength() * r.dx(); - int y2 = y1 + ship.getLength() * r.dy(); - - return x1 >= 0 && y1 >= 0 && x1 <= config.getMapWidth() && y1 <= config.getMapHeight() && - x2 >= 0 && y2 >= 0 && x2 <= config.getMapWidth() && y2 <= config.getMapHeight(); + int minX = ship.getMinX(); + int maxX = ship.getMaxX(); + int minY = ship.getMinY(); + int maxY = ship.getMaxY(); + int width = config.getMapWidth(); + int height = config.getMapHeight(); + return minX >= 0 && minX < width && + minY >= 0 && minY < height && + maxX >= 0 && maxX < width && + maxY >= 0 && maxY < height; } /**