mirror of
https://github.com/inf112-v20/Fiasko.git
synced 2025-02-01 07:39:35 +01:00
Fjerner redundant kollisjonssjekk for transportbånd
This commit is contained in:
parent
8341f2195e
commit
a4bfee6cb8
@ -255,21 +255,8 @@ public class Board {
|
|||||||
*/
|
*/
|
||||||
private boolean hasFrontConflict(Position conveyorBeltPosition, Position positionInFront,
|
private boolean hasFrontConflict(Position conveyorBeltPosition, Position positionInFront,
|
||||||
Direction conveyorBeltDirection) {
|
Direction conveyorBeltDirection) {
|
||||||
//The robot cannot be moved because a wall is blocking it
|
return moveIsStoppedByWall(conveyorBeltPosition, positionInFront, conveyorBeltDirection) ||
|
||||||
if (moveIsStoppedByWall(conveyorBeltPosition, positionInFront, conveyorBeltDirection)) {
|
hasRobotOnPosition(positionInFront);
|
||||||
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));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -287,7 +274,7 @@ public class Board {
|
|||||||
Tile frontRightTile = getTileOnPosition(frontRightPosition);
|
Tile frontRightTile = getTileOnPosition(frontRightPosition);
|
||||||
Position twoForwardPosition = getNewPosition(crossingPosition, conveyorBeltDirection);
|
Position twoForwardPosition = getNewPosition(crossingPosition, conveyorBeltDirection);
|
||||||
Tile twoForwardTile = getTileOnPosition(twoForwardPosition);
|
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() ==
|
return (isValidPosition(frontLeftPosition) && isConveyorBelt(frontLeftTile) && frontLeftTile.getDirection() ==
|
||||||
Direction.getRightRotatedDirection(conveyorBeltDirection) && hasRobotOnPosition(frontLeftPosition)) ||
|
Direction.getRightRotatedDirection(conveyorBeltDirection) && hasRobotOnPosition(frontLeftPosition)) ||
|
||||||
(isValidPosition(frontRightPosition) && isConveyorBelt(frontRightTile)
|
(isValidPosition(frontRightPosition) && isConveyorBelt(frontRightTile)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user