private static void PrintSurface(ISurface surface) { for (var height = surface.GetHeight(); height >= 1; height--) { for (var width = 1; width <= surface.GetWidth(); width++) { var quadrant = surface.GetQuadrant(width, height); if (surface.GetRover().GetPosition().GetX() == width && surface.GetRover().GetPosition().GetY() == height) { switch (surface.GetRover().GetDirection()) { case Direction.North: PrintRover("N"); break; case Direction.South: PrintRover("S"); break; case Direction.East: PrintRover("E"); break; case Direction.West: PrintRover("W"); break; } } else if (quadrant.GetObject() is Sand) { PrintSand(); } else if (quadrant.GetObject() is Rock) { PrintRock(); } } Jump(); } }