//Any other corner cases?
        public bool IsBlocked(Character character, Point direction)
        {
            Point currentPosition = new Point(character.Coordinate.X, character.Coordinate.Y);
            Tile currentTile = map[currentPosition.X, currentPosition.Y];
            Point nextPosition = new Point(character.Coordinate.X + direction.X, character.Coordinate.Y + direction.Y);

            if (nextPosition.X < 0 || nextPosition.X > (map.GetLength(0) - 1) || nextPosition.Y < 0 || nextPosition.Y > (map.GetLength(1) - 1)) // Beyond boundaries
            {
                return true;
            }
            else if (currentPosition.X == nextPosition.X && currentPosition.Y == nextPosition.Y) // Stay still - Invalid
            {
                return true;
            }
            else
            {
                Tile nextTile = map[nextPosition.X, nextPosition.Y];
                if (currentPosition.X > nextPosition.X) // Left
                {
                    return currentTile.FourWalls.HasFlag(Walls.West);
                }
                else if (currentPosition.X < nextPosition.X) // Right
                {
                    return currentTile.FourWalls.HasFlag(Walls.East);
                }
                else
                {
                    if (currentPosition.Y > nextPosition.Y) // Up
                    {
                        return currentTile.FourWalls.HasFlag(Walls.North);
                    }
                    else // Down
                    {
                        return currentTile.FourWalls.HasFlag(Walls.South);
                    }
                }
            }
        }
 public bool MoveCharacter(Character character, Point direction)
 {
     if (IsBlocked(character, direction))
     {
         return false;
     }
     else
     {
         // Update current position of character
         character.Coordinate.X += direction.X;
         character.Coordinate.Y += direction.Y;
         return true;
     }
 }
        // Check if thesesus is at Exit 'after' his every move
        public bool IsExit(Character character)
        {
            Point currentPosition = new Point(character.Coordinate.X, character.Coordinate.Y);
            Tile currentTile = map[currentPosition.X, currentPosition.Y];

            if (currentTile.FourWalls.HasFlag(Walls.End))
            {
                return true;
            }
            else
            {
                return false;
            }
        }