Ejemplo n.º 1
0
        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();
            }
        }