parameters: (self, maze, rat_1, rat_2)
docstring: (Maze, list of list of str, Rat, Rat) -> NoneType
  
  	Precondition: rows of the maze > 2
  	Precondition: cols of the maze > 2
  	Precondition: maze have the same number of columns in all rows
  	Precondition: rat_1 inside maze and not on the wall and not on the sprout
  	Precondition: rat_2 inside maze and not on the wall and not on the sprout
  
          A 2D maze with two rats and a number of sprouts.
  
          maze: the contents of the maze.
          rat_1: the first rat in the maze.
          rat_2: the second rat in the maze.
          num_sprouts_left: the number of uneaten sprouts in this maze.
  
          >>> maze = Maze([['#', '#', '#', '#', '#', '#', '#'], \
                           ['#', '.', '.', '.', '.', '.', '#'], \
                           ['#', '.', '#', '#', '#', '.', '#'], \
                           ['#', '.', '.', '@', '#', '.', '#'], \
                           ['#', '@', '#', '.', '@', '.', '#'], \
                           ['#', '#', '#', '#', '#', '#', '#']], \
                          Rat('J', 1, 1), \
                          Rat('P', 1, 4))
  	>>> maze.maze
          [['#', '#', '#', '#', '#', '#', '#'], ['#', 'J', '.', '.', 'P', '.', '#'], ['#', '.', '#', '#', '#', '.', '#'], ['#', '.', '.', '@', '#', '.', '#'], ['#', '@', '#', '.', '@', '.', '#'], ['#', '#', '#', '#', '#', '#', '#']]
          >>> maze.num_sprouts_left
          3
docstring_summary: (Maze, list of list of str, Rat, Rat) -> NoneType
docstring_tokens: ( Maze list of list of str Rat Rat ) - > NoneType
function: def __init__(self, maze, rat_1, rat_2):
          """ (Maze, list of list of str, Rat, Rat) -> NoneType
  
  	Precondition: rows of the maze > 2
  	Precondition: cols of the maze > 2
  	Precondition: maze have the same number of columns in all rows
  	Precondition: rat_1 inside maze and not on the wall and not on the sprout
  	Precondition: rat_2 inside maze and not on the wall and not on the sprout
  
          A 2D maze with two rats and a number of sprouts.
  
          maze: the contents of the maze.
          rat_1: the first rat in the maze.
          rat_2: the second rat in the maze.
          num_sprouts_left: the number of uneaten sprouts in this maze.
  
          >>> maze = Maze([['#', '#', '#', '#', '#', '#', '#'], \
                           ['#', '.', '.', '.', '.', '.', '#'], \
                           ['#', '.', '#', '#', '#', '.', '#'], \
                           ['#', '.', '.', '@', '#', '.', '#'], \
                           ['#', '@', '#', '.', '@', '.', '#'], \
                           ['#', '#', '#', '#', '#', '#', '#']], \
                          Rat('J', 1, 1), \
                          Rat('P', 1, 4))
  	>>> maze.maze
          [['#', '#', '#', '#', '#', '#', '#'], ['#', 'J', '.', '.', 'P', '.', '#'], ['#', '.', '#', '#', '#', '.', '#'], ['#', '.', '.', '@', '#', '.', '#'], ['#', '@', '#', '.', '@', '.', '#'], ['#', '#', '#', '#', '#', '#', '#']]
          >>> maze.num_sprouts_left
          3
          """
  
          self.maze = maze
          self.rat_1 = rat_1
          self.rat_2 = rat_2
  
          self.maze[rat_1.row][rat_1.col] = rat_1.symbol
          self.maze[rat_2.row][rat_2.col] = rat_2.symbol
  
          num_sprouts_left = 0
          for row in maze:
              num_sprouts_left = num_sprouts_left + row.count(SPROUT)
          self.num_sprouts_left = num_sprouts_left
function_tokens: def __init__ ( self , maze , rat_1 , rat_2 ) : self . maze = maze self . rat_1 = rat_1 self . rat_2 = rat_2 self . maze [ rat_1 . row ] [ rat_1 . col ] = rat_1 . symbol self . maze [ rat_2 . row ] [ rat_2 . col ] = rat_2 . symbol num_sprouts_left = 0 for row in maze : num_sprouts_left = num_sprouts_left + row . count ( SPROUT ) self . num_sprouts_left = num_sprouts_left