public static void ShiftIfWidthMoreHeight(Robot robot, int width, int height, int rightshift, int downshift) { for (int i = 0; i < height - 3; i++) { EmptyMazeTask.MoveRightOnCount(robot, rightshift); EmptyMazeTask.MoveDownOnCount(robot, downshift); } EmptyMazeTask.MoveRightOnCount(robot, rightshift); }
public static void MoveTroughOneBend(Robot robot, int width, int height, int numberOfBends, int bendingNumber) { EmptyMazeTask.MoveDistanceTowards(robot, width - 3, Direction.Right); EmptyMazeTask.MoveDistanceTowards(robot, 2, Direction.Down); EmptyMazeTask.MoveDistanceTowards(robot, width - 3, Direction.Left); if (bendingNumber != numberOfBends - 1) { EmptyMazeTask.MoveDistanceTowards(robot, 2, Direction.Down); } }
public static void MoveTroughtDiagonal(Robot robot, int bigMove, Direction bigDir, Direction smallDir, int numberOfBending) { for (int i = 0; i < numberOfBending; i++) { EmptyMazeTask.MoveDistanceTowards(robot, bigMove, bigDir); if (i != numberOfBending - 1) { EmptyMazeTask.MoveDistanceTowards(robot, 1, smallDir); } } }
public static void MoveOut(Robot robot, int width, int height) { int i = 1; while (i < height - 2) { RightDownLeftStep(robot, width); i += 2; if (i != height - 2) { EmptyMazeTask.MoveDownOnCount(robot, 2); i += 2; } } }
public static void RightDownLeftStep(Robot robot, int width) { EmptyMazeTask.MoveRightOnCount(robot, width - 3); EmptyMazeTask.MoveDownOnCount(robot, 2); MoveLeftOnCount(robot, width - 3); }