public bool Finished = false;
public void MoveTo(Direction direction) {}
public static void Main()
Robot robot = new Robot();
Console.WriteLine("=========================");
Console.WriteLine("=========================");
Console.WriteLine("=========================");
public static void MoveOut(Robot robot, int width, int height)
int steps = CountSteps(width, height);
MoveRobot(robot, steps, Direction.Right);
if (!robot.Finished) MoveRobot(robot, 1, Direction.Down);
MoveRobot(robot, steps, Direction.Down);
if (!robot.Finished) MoveRobot(robot, 1, Direction.Right);
public static int CountSteps(int width, int height)
return (width - 2) / (height - 2);
return (height - 2) / (width - 2);
public static void MoveRobot(Robot robot, int steps, Direction direction)
for (int i = 0; i < steps; i++)
Console.WriteLine("Move " + (i + 1) + " step to the " + direction);