From a4bfee6cb81acdcfe3d2a4c06902718c3275c812 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Thu, 26 Mar 2020 12:50:47 +0100 Subject: [PATCH] =?UTF-8?q?Fjerner=20redundant=20kollisjonssjekk=20for=20t?= =?UTF-8?q?ransportb=C3=A5nd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fiasko/roborally/objects/Board.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index a7872f0..77b55f7 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -255,21 +255,8 @@ public class Board { */ private boolean hasFrontConflict(Position conveyorBeltPosition, Position positionInFront, Direction conveyorBeltDirection) { - //The robot cannot be moved because a wall is blocking it - if (moveIsStoppedByWall(conveyorBeltPosition, positionInFront, conveyorBeltDirection)) { - return true; - } - //The robot cannot move off the conveyor belt because another robot is blocking it - if (hasRobotOnPosition(positionInFront)) { - return true; - } - Position positionTwoForward = getNewPosition(positionInFront, conveyorBeltDirection); - Tile tileTwoForward = getTileOnPosition(positionTwoForward); - //If a robot standing on the opposite side of a tile and trying to get to the tile in the middle, none of - //the robots should move - return (isValidPosition(positionInFront) && isConveyorBelt(tileTwoForward) && - tileTwoForward.getDirection() == Direction.getReverseDirection(conveyorBeltDirection) - && hasRobotOnPosition(positionTwoForward)); + return moveIsStoppedByWall(conveyorBeltPosition, positionInFront, conveyorBeltDirection) || + hasRobotOnPosition(positionInFront); } /** @@ -287,7 +274,7 @@ public class Board { Tile frontRightTile = getTileOnPosition(frontRightPosition); Position twoForwardPosition = getNewPosition(crossingPosition, conveyorBeltDirection); Tile twoForwardTile = getTileOnPosition(twoForwardPosition); - //If another robot is standing on a conveyor belt pointing to the conveyor belt in front, a conflict happens + //If another robot is standing on a conveyor belt pointing to the tile in front, a conflict happens return (isValidPosition(frontLeftPosition) && isConveyorBelt(frontLeftTile) && frontLeftTile.getDirection() == Direction.getRightRotatedDirection(conveyorBeltDirection) && hasRobotOnPosition(frontLeftPosition)) || (isValidPosition(frontRightPosition) && isConveyorBelt(frontRightTile)