code: def update_visited(self):
          
          assert isinstance(self.player.cshape.center, eu.Vector2)
          pos = self.player.cshape.center
  
          # Helper function
          def set_visited(layer, cell):
              if cell and not cell.properties.get('visited') and cell.tile and cell.tile.id > 0:
                  cell.properties['visited'] = True
  
                  self.reward_explore()
  
                  # TODO: Decouple into view rendering
                  # Change colour of visited cells
                  key = layer.get_key_at_pixel(cell.x, cell.y)
                  #layer.set_cell_color(key[0], key[1], [155,155,155])
                  layer.set_cell_opacity(key[0], key[1], 255*0.8)
          # End Helper
  
          # Get the current tile under player
          current = self.visit_layer.get_at_pixel(pos.x, pos.y)
  
          if current:
              # In spawn square
              if current == self.visit_layer.get_at_pixel(self.spawn.x, self.spawn.y):
                  self.reward_goal()
  
              # Only record/reward exploration when battery is above 50%
              #if self.player.stats['battery'] > 50:
              set_visited(self.visit_layer, current)
              neighbours = self.visit_layer.get_neighbors(current)
              for cell in neighbours:
                  neighbour = neighbours[cell]
                  set_visited(self.visit_layer, neighbour)
docs: Updates exploration map visited status