code: def next_pos(self, pos, action):
      x_offset, y_offset = 0, 0
      if action == Action.UP:
          x_offset = -1
          y_offset = 0
      elif action == Action.DOWN:
          x_offset = 1
          y_offset = 0
      elif action == Action.RIGHT:
          x_offset = 0
          y_offset = 1
      elif action == Action.LEFT:
          x_offset = 0
          y_offset = -1
  
      next_pos = Position(pos.x + x_offset, pos.y + y_offset)
  
      if self._inside(next_pos) and self._passable(next_pos):
          return next_pos
      else:
          return pos
  
imports: import logging
  from typing import NamedTuple
  import numpy
  from gym import Env
  from gym.spaces import Box, Discrete
label_desc: Use image node_id 18 for calling the PocManEnv obj's underlying member method code with example usage: obj.next_pos(pos, action) and returns: next_pos, pos