<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def map_sprinkler(self, sx, sy, watered_crop='^', watered_field='_', dry_field=' ', dry_crop='x'):
 """ Return a version of the ASCII map showing reached crop cells. """

        # convert strings (rows) to lists of characters for easier map editing
        maplist = [list(s) for s in self.maplist]

        for y, row in enumerate(maplist):
            for x, cell in enumerate(row):
                if sprinkler_reaches_cell(x, y, sx, sy, self.r):
                    if cell == 'x':
                        cell = watered_crop
                    else:
                        cell = watered_field
                else:
                    cell = dry_crop if cell == 'x' else dry_field

                maplist[y][x] = cell

        maplist[sy][sx] = 'O'  # sprinkler

        return '\n'.join([''.join(row) for row in maplist])