Possible bug when generating non-square DoorKey environments.
rbankosegger opened this issue · 4 comments
rbankosegger commented
Consider the lines
doorIdx = self._rand_int(1, width - 2)
self.put_obj(Door("yellow", is_locked=True), splitIdx, doorIdx)
From:
The variable doorIdx
determines the y-coordinate of the door,
the sampling of which should depend on the grid height, not its width.
In situations where width > height, the door might be placed outside of the grid dimension.
Suggested fix:
Replace by
doorIdx = self._rand_int(1, height - 2)
pseudo-rnd-thoughts commented
Could you provide an example image for a given seed with and without the fix
rbankosegger commented
Here is an example.
I believe this bug cannot occur "in the wild" because width=height for all gym-registered environments.
But it might become an issue if someone decides to publish a non-square environment of this type.
from minigrid.envs.doorkey import DoorKeyEnv
env = DoorKeyEnv(render_mode='human', size=6)
env.reset(seed=1)
env._gen_grid(6,4)
env.render()
import time
time.sleep(100)
pseudo-rnd-thoughts commented
Ahh, that makes sense. Could you make a PR with this fix?
rbankosegger commented
Here it is:
#429