standalone.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python3
  2. from __future__ import division, print_function
  3. import numpy
  4. import gym
  5. import time
  6. import gym_minigrid
  7. from gym_minigrid.envs import MiniGridEnv
  8. def main():
  9. env = gym.make('MiniGrid-Multi-Room-N6-v0')
  10. env.reset()
  11. # Create a window to render into
  12. renderer = env.render('human')
  13. def keyDownCb(keyName):
  14. action = 0
  15. if keyName == 'LEFT':
  16. action = MiniGridEnv.ACTION_LEFT
  17. elif keyName == 'RIGHT':
  18. action = MiniGridEnv.ACTION_RIGHT
  19. elif keyName == 'UP':
  20. action = MiniGridEnv.ACTION_FORWARD
  21. elif keyName == 'SPACE':
  22. action = MiniGridEnv.ACTION_TOGGLE
  23. else:
  24. "unknown key"
  25. obs, reward, done, info = env.step(action)
  26. print('reward=%s' % reward)
  27. if done:
  28. print('done!')
  29. env.reset()
  30. renderer.window.setKeyDownCb(keyDownCb)
  31. while True:
  32. env.render('human')
  33. time.sleep(0.01)
  34. # If the window was closed
  35. if renderer.window == None:
  36. break
  37. if __name__ == "__main__":
  38. main()