Ejemplo n.º 1
0
        public void Move()
        {
            Coordinates nextCoordinates = new Coordinates(coordinates);

            if (direction == 'N')
            {
                if (nextCoordinates.Y < grid.MaxY)
                {
                    nextCoordinates.Y++;
                }
                else
                {
                    TurnAround();
                }
            }
            else if (direction == 'S')
            {
                if (nextCoordinates.Y > grid.MinY)
                {
                    nextCoordinates.Y--;
                }
                else
                {
                    TurnAround();
                }
            }
            else if (direction == 'E')
            {
                if (nextCoordinates.X < grid.MaxX)
                {
                    nextCoordinates.X++;
                }
                else
                {
                    TurnAround();
                }
            }
            else if (direction == 'W')
            {
                if (nextCoordinates.X > grid.MinX)
                {
                    nextCoordinates.X--;
                }
                else
                {
                    TurnAround();
                }
            }

            if (grid.AreCoordinatesTraversable(nextCoordinates))
            {
                encounteredObstacle = true;
            }
            else
            {
                coordinates = nextCoordinates;
            }
        }