Browse Source

Merge pull request #202 from pseudo-rnd-thoughts/remove-param-envs

Remove param envs and rename environments for consistency
Mark Towers 2 years ago
parent
commit
72c35e3836

+ 13 - 12
gym_minigrid/envs/__init__.py

@@ -1,4 +1,4 @@
-from gym_minigrid.envs.blockedunlockpickup import BlockedUnlockPickup
+from gym_minigrid.envs.blockedunlockpickup import BlockedUnlockPickupEnv
 from gym_minigrid.envs.crossing import CrossingEnv
 from gym_minigrid.envs.crossing import CrossingEnv
 from gym_minigrid.envs.distshift import DistShiftEnv
 from gym_minigrid.envs.distshift import DistShiftEnv
 from gym_minigrid.envs.doorkey import DoorKeyEnv
 from gym_minigrid.envs.doorkey import DoorKeyEnv
@@ -8,17 +8,18 @@ from gym_minigrid.envs.fetch import FetchEnv
 from gym_minigrid.envs.fourrooms import FourRoomsEnv
 from gym_minigrid.envs.fourrooms import FourRoomsEnv
 from gym_minigrid.envs.gotodoor import GoToDoorEnv
 from gym_minigrid.envs.gotodoor import GoToDoorEnv
 from gym_minigrid.envs.gotoobject import GoToObjectEnv
 from gym_minigrid.envs.gotoobject import GoToObjectEnv
-from gym_minigrid.envs.keycorridor import KeyCorridor
+from gym_minigrid.envs.keycorridor import KeyCorridorEnv
 from gym_minigrid.envs.lavagap import LavaGapEnv
 from gym_minigrid.envs.lavagap import LavaGapEnv
-from gym_minigrid.envs.lockedroom import LockedRoom
+from gym_minigrid.envs.lockedroom import LockedRoom, LockedRoomEnv
 from gym_minigrid.envs.memory import MemoryEnv
 from gym_minigrid.envs.memory import MemoryEnv
-from gym_minigrid.envs.multiroom import MultiRoomEnv
-from gym_minigrid.envs.obstructedmaze import ObstructedMazeEnv
-from gym_minigrid.envs.playground_v0 import PlaygroundV0
+from gym_minigrid.envs.multiroom import MultiRoom, MultiRoomEnv
+from gym_minigrid.envs.obstructedmaze import (
+    ObstructedMaze_1Dlhb,
+    ObstructedMaze_Full,
+    ObstructedMazeEnv,
+)
+from gym_minigrid.envs.playground import PlaygroundEnv
 from gym_minigrid.envs.putnear import PutNearEnv
 from gym_minigrid.envs.putnear import PutNearEnv
-from gym_minigrid.envs.redbluedoors import RedBlueDoorEnv, RedBlueDoorEnv6x6
-from gym_minigrid.envs.unlock import Unlock
-from gym_minigrid.envs.unlockpickup import UnlockPickup
-
-# from gym_minigrid.envs.lockedroom import Room as LockedRoom
-# from gym_minigrid.envs.multiroom import Room as MultiRoom
+from gym_minigrid.envs.redbluedoors import RedBlueDoorEnv
+from gym_minigrid.envs.unlock import UnlockEnv
+from gym_minigrid.envs.unlockpickup import UnlockPickupEnv

+ 2 - 2
gym_minigrid/envs/blockedunlockpickup.py

@@ -3,7 +3,7 @@ from gym_minigrid.register import register
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.roomgrid import RoomGrid
 
 
 
 
-class BlockedUnlockPickup(RoomGrid):
+class BlockedUnlockPickupEnv(RoomGrid):
     """
     """
     Unlock a door blocked by a ball, then pick up a box
     Unlock a door blocked by a ball, then pick up a box
     in another room
     in another room
@@ -50,5 +50,5 @@ class BlockedUnlockPickup(RoomGrid):
 
 
 register(
 register(
     id="MiniGrid-BlockedUnlockPickup-v0",
     id="MiniGrid-BlockedUnlockPickup-v0",
-    entry_point="gym_minigrid.envs:BlockedUnlockPickup",
+    entry_point="gym_minigrid.envs.blockedunlockpickup:BlockedUnlockPickupEnv",
 )
 )

+ 29 - 49
gym_minigrid/envs/crossing.py

@@ -85,82 +85,62 @@ class CrossingEnv(MiniGridEnv):
         )
         )
 
 
 
 
-class LavaCrossingEnv(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=1, **kwargs)
-
-
-class LavaCrossingS9N2Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=2, **kwargs)
-
-
-class LavaCrossingS9N3Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=3, **kwargs)
-
-
-class LavaCrossingS11N5Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=11, num_crossings=5, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-LavaCrossingS9N1-v0", entry_point="gym_minigrid.envs:LavaCrossingEnv"
+    id="MiniGrid-LavaCrossingS9N1-v0",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=1,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-LavaCrossingS9N2-v0",
     id="MiniGrid-LavaCrossingS9N2-v0",
-    entry_point="gym_minigrid.envs:LavaCrossingS9N2Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=2,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-LavaCrossingS9N3-v0",
     id="MiniGrid-LavaCrossingS9N3-v0",
-    entry_point="gym_minigrid.envs:LavaCrossingS9N3Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=3,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-LavaCrossingS11N5-v0",
     id="MiniGrid-LavaCrossingS11N5-v0",
-    entry_point="gym_minigrid.envs:LavaCrossingS11N5Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=11,
+    num_crossings=5,
 )
 )
 
 
-
-class SimpleCrossingEnv(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=1, obstacle_type=Wall, **kwargs)
-
-
-class SimpleCrossingS9N2Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=2, obstacle_type=Wall, **kwargs)
-
-
-class SimpleCrossingS9N3Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, num_crossings=3, obstacle_type=Wall, **kwargs)
-
-
-class SimpleCrossingS11N5Env(CrossingEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=11, num_crossings=5, obstacle_type=Wall, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-SimpleCrossingS9N1-v0",
     id="MiniGrid-SimpleCrossingS9N1-v0",
-    entry_point="gym_minigrid.envs:SimpleCrossingEnv",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=1,
+    obstacle_type=Wall,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-SimpleCrossingS9N2-v0",
     id="MiniGrid-SimpleCrossingS9N2-v0",
-    entry_point="gym_minigrid.envs:SimpleCrossingS9N2Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=2,
+    obstacle_type=Wall,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-SimpleCrossingS9N3-v0",
     id="MiniGrid-SimpleCrossingS9N3-v0",
-    entry_point="gym_minigrid.envs:SimpleCrossingS9N3Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=9,
+    num_crossings=3,
+    obstacle_type=Wall,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-SimpleCrossingS11N5-v0",
     id="MiniGrid-SimpleCrossingS11N5-v0",
-    entry_point="gym_minigrid.envs:SimpleCrossingS11N5Env",
+    entry_point="gym_minigrid.envs.crossing:CrossingEnv",
+    size=11,
+    num_crossings=5,
+    obstacle_type=Wall,
 )
 )

+ 11 - 13
gym_minigrid/envs/distshift.py

@@ -55,16 +55,14 @@ class DistShiftEnv(MiniGridEnv):
         self.mission = "get to the green goal square"
         self.mission = "get to the green goal square"
 
 
 
 
-class DistShift1(DistShiftEnv):
-    def __init__(self, **kwargs):
-        super().__init__(strip2_row=2, **kwargs)
-
-
-class DistShift2(DistShiftEnv):
-    def __init__(self, **kwargs):
-        super().__init__(strip2_row=5, **kwargs)
-
-
-register(id="MiniGrid-DistShift1-v0", entry_point="gym_minigrid.envs:DistShift1")
-
-register(id="MiniGrid-DistShift2-v0", entry_point="gym_minigrid.envs:DistShift2")
+register(
+    id="MiniGrid-DistShift1-v0",
+    entry_point="gym_minigrid.envs.distshift:DistShiftEnv",
+    strip2_row=2,
+)
+
+register(
+    id="MiniGrid-DistShift2-v0",
+    entry_point="gym_minigrid.envs.distshift:DistShiftEnv",
+    strip2_row=5,
+)

+ 18 - 19
gym_minigrid/envs/doorkey.py

@@ -40,27 +40,26 @@ class DoorKeyEnv(MiniGridEnv):
         self.mission = "use the key to open the door and then get to the goal"
         self.mission = "use the key to open the door and then get to the goal"
 
 
 
 
-class DoorKeyEnv5x5(DoorKeyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, **kwargs)
-
-
-class DoorKeyEnv6x6(DoorKeyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-
-class DoorKeyEnv16x16(DoorKeyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=16, **kwargs)
-
-
-register(id="MiniGrid-DoorKey-5x5-v0", entry_point="gym_minigrid.envs:DoorKeyEnv5x5")
+register(
+    id="MiniGrid-DoorKey-5x5-v0",
+    entry_point="gym_minigrid.envs.doorkey:DoorKeyEnv",
+    size=5,
+)
 
 
-register(id="MiniGrid-DoorKey-6x6-v0", entry_point="gym_minigrid.envs:DoorKeyEnv6x6")
+register(
+    id="MiniGrid-DoorKey-6x6-v0",
+    entry_point="gym_minigrid.envs.doorkey:DoorKeyEnv",
+    size=6,
+)
 
 
-register(id="MiniGrid-DoorKey-8x8-v0", entry_point="gym_minigrid.envs:DoorKeyEnv")
+register(
+    id="MiniGrid-DoorKey-8x8-v0",
+    entry_point="gym_minigrid.envs.doorkey:DoorKeyEnv",
+    size=8,
+)
 
 
 register(
 register(
-    id="MiniGrid-DoorKey-16x16-v0", entry_point="gym_minigrid.envs:DoorKeyEnv16x16"
+    id="MiniGrid-DoorKey-16x16-v0",
+    entry_point="gym_minigrid.envs.doorkey:DoorKeyEnv",
+    size=16,
 )
 )

+ 18 - 31
gym_minigrid/envs/dynamicobstacles.py

@@ -92,57 +92,44 @@ class DynamicObstaclesEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class DynamicObstaclesEnv5x5(DynamicObstaclesEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, n_obstacles=2, **kwargs)
-
-
-class DynamicObstaclesRandomEnv5x5(DynamicObstaclesEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, agent_start_pos=None, n_obstacles=2, **kwargs)
-
-
-class DynamicObstaclesEnv6x6(DynamicObstaclesEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, n_obstacles=3, **kwargs)
-
-
-class DynamicObstaclesRandomEnv6x6(DynamicObstaclesEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, agent_start_pos=None, n_obstacles=3, **kwargs)
-
-
-class DynamicObstaclesEnv16x16(DynamicObstaclesEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=16, n_obstacles=8, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-5x5-v0",
     id="MiniGrid-Dynamic-Obstacles-5x5-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesEnv5x5",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
+    size=5,
+    n_obstacles=2,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-Random-5x5-v0",
     id="MiniGrid-Dynamic-Obstacles-Random-5x5-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesRandomEnv5x5",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
+    size=5,
+    agent_start_pos=None,
+    n_obstacles=2,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-6x6-v0",
     id="MiniGrid-Dynamic-Obstacles-6x6-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesEnv6x6",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
+    size=6,
+    n_obstacles=3,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-Random-6x6-v0",
     id="MiniGrid-Dynamic-Obstacles-Random-6x6-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesRandomEnv6x6",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
+    size=6,
+    agent_start_pos=None,
+    n_obstacles=3,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-8x8-v0",
     id="MiniGrid-Dynamic-Obstacles-8x8-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesEnv",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
 )
 )
 
 
 register(
 register(
     id="MiniGrid-Dynamic-Obstacles-16x16-v0",
     id="MiniGrid-Dynamic-Obstacles-16x16-v0",
-    entry_point="gym_minigrid.envs:DynamicObstaclesEnv16x16",
+    entry_point="gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv",
+    size=16,
+    n_obstacles=8,
 )
 )

+ 25 - 33
gym_minigrid/envs/empty.py

@@ -39,45 +39,37 @@ class EmptyEnv(MiniGridEnv):
         self.mission = "get to the green goal square"
         self.mission = "get to the green goal square"
 
 
 
 
-class EmptyEnv5x5(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, **kwargs)
-
-
-class EmptyRandomEnv5x5(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, agent_start_pos=None, **kwargs)
-
-
-class EmptyEnv6x6(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-
-class EmptyRandomEnv6x6(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, agent_start_pos=None, **kwargs)
-
-
-class EmptyEnv16x16(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=16, **kwargs)
-
-
-register(id="MiniGrid-Empty-5x5-v0", entry_point="gym_minigrid.envs:EmptyEnv5x5")
-
-register(id="MiniGrid-Empty-5x5-v0", entry_point="gym_minigrid.envs:EmptyEnv5x5")
+register(
+    id="MiniGrid-Empty-5x5-v0", entry_point="gym_minigrid.envs.empty:EmptyEnv", size=5
+)
 
 
 register(
 register(
-    id="MiniGrid-Empty-Random-5x5-v0", entry_point="gym_minigrid.envs:EmptyRandomEnv5x5"
+    id="MiniGrid-Empty-Random-5x5-v0",
+    entry_point="gym_minigrid.envs.empty:EmptyEnv",
+    size=5,
+    agent_start_pos=None,
 )
 )
 
 
-register(id="MiniGrid-Empty-6x6-v0", entry_point="gym_minigrid.envs:EmptyEnv6x6")
+register(
+    id="MiniGrid-Empty-6x6-v0",
+    entry_point="gym_minigrid.envs.empty:EmptyEnv",
+    size=6,
+)
 
 
 register(
 register(
-    id="MiniGrid-Empty-Random-6x6-v0", entry_point="gym_minigrid.envs:EmptyRandomEnv6x6"
+    id="MiniGrid-Empty-Random-6x6-v0",
+    entry_point="gym_minigrid.envs.empty:EmptyEnv",
+    size=6,
+    agent_start_pos=None,
 )
 )
 
 
-register(id="MiniGrid-Empty-8x8-v0", entry_point="gym_minigrid.envs:EmptyEnv")
+register(
+    id="MiniGrid-Empty-8x8-v0",
+    entry_point="gym_minigrid.envs.empty:EmptyEnv",
+)
 
 
-register(id="MiniGrid-Empty-16x16-v0", entry_point="gym_minigrid.envs:EmptyEnv16x16")
+register(
+    id="MiniGrid-Empty-16x16-v0",
+    entry_point="gym_minigrid.envs.empty:EmptyEnv",
+    size=16,
+)

+ 15 - 15
gym_minigrid/envs/fetch.py

@@ -86,18 +86,18 @@ class FetchEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class FetchEnv5x5N2(FetchEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, numObjs=2, **kwargs)
-
-
-class FetchEnv6x6N2(FetchEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, numObjs=2, **kwargs)
-
-
-register(id="MiniGrid-Fetch-5x5-N2-v0", entry_point="gym_minigrid.envs:FetchEnv5x5N2")
-
-register(id="MiniGrid-Fetch-6x6-N2-v0", entry_point="gym_minigrid.envs:FetchEnv6x6N2")
-
-register(id="MiniGrid-Fetch-8x8-N3-v0", entry_point="gym_minigrid.envs:FetchEnv")
+register(
+    id="MiniGrid-Fetch-5x5-N2-v0",
+    entry_point="gym_minigrid.envs.fetch:FetchEnv",
+    size=5,
+    numObjs=2,
+)
+
+register(
+    id="MiniGrid-Fetch-6x6-N2-v0",
+    entry_point="gym_minigrid.envs.fetch:FetchEnv",
+    size=6,
+    numObjs=2,
+)
+
+register(id="MiniGrid-Fetch-8x8-N3-v0", entry_point="gym_minigrid.envs.fetch:FetchEnv")

+ 3 - 1
gym_minigrid/envs/fourrooms.py

@@ -72,4 +72,6 @@ class FourRoomsEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-register(id="MiniGrid-FourRooms-v0", entry_point="gym_minigrid.envs:FourRoomsEnv")
+register(
+    id="MiniGrid-FourRooms-v0", entry_point="gym_minigrid.envs.fourrooms:FourRoomsEnv"
+)

+ 15 - 15
gym_minigrid/envs/gotodoor.py

@@ -80,18 +80,18 @@ class GoToDoorEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class GoToDoor8x8Env(GoToDoorEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=8, **kwargs)
-
-
-class GoToDoor6x6Env(GoToDoorEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-
-register(id="MiniGrid-GoToDoor-5x5-v0", entry_point="gym_minigrid.envs:GoToDoorEnv")
-
-register(id="MiniGrid-GoToDoor-6x6-v0", entry_point="gym_minigrid.envs:GoToDoor6x6Env")
-
-register(id="MiniGrid-GoToDoor-8x8-v0", entry_point="gym_minigrid.envs:GoToDoor8x8Env")
+register(
+    id="MiniGrid-GoToDoor-5x5-v0", entry_point="gym_minigrid.envs.gotodoor:GoToDoorEnv"
+)
+
+register(
+    id="MiniGrid-GoToDoor-6x6-v0",
+    entry_point="gym_minigrid.envs.gotodoor:GoToDoorEnv",
+    size=6,
+)
+
+register(
+    id="MiniGrid-GoToDoor-8x8-v0",
+    entry_point="gym_minigrid.envs.gotodoor:GoToDoorEnv",
+    size=8,
+)

+ 6 - 7
gym_minigrid/envs/gotoobject.py

@@ -82,15 +82,14 @@ class GoToObjectEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class GotoEnv8x8N2(GoToObjectEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=8, numObjs=2, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-GoToObject-6x6-N2-v0", entry_point="gym_minigrid.envs:GoToObjectEnv"
+    id="MiniGrid-GoToObject-6x6-N2-v0",
+    entry_point="gym_minigrid.envs.gotoobject:GoToObjectEnv",
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-GoToObject-8x8-N2-v0", entry_point="gym_minigrid.envs:GotoEnv8x8N2"
+    id="MiniGrid-GoToObject-8x8-N2-v0",
+    entry_point="gym_minigrid.envs.gotoobject:GoToObjectEnv",
+    size=8,
+    numObjs=2,
 )
 )

+ 25 - 37
gym_minigrid/envs/keycorridor.py

@@ -2,7 +2,7 @@ from gym_minigrid.register import register
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.roomgrid import RoomGrid
 
 
 
 
-class KeyCorridor(RoomGrid):
+class KeyCorridorEnv(RoomGrid):
     """
     """
     A ball is behind a locked door, the key is placed in a
     A ball is behind a locked door, the key is placed in a
     random room.
     random room.
@@ -54,56 +54,44 @@ class KeyCorridor(RoomGrid):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class KeyCorridorS3R1(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=3, num_rows=1, **kwargs)
-
-
-class KeyCorridorS3R2(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=3, num_rows=2, **kwargs)
-
-
-class KeyCorridorS3R3(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=3, num_rows=3, **kwargs)
-
-
-class KeyCorridorS4R3(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=4, num_rows=3, **kwargs)
-
-
-class KeyCorridorS5R3(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=5, num_rows=3, **kwargs)
-
-
-class KeyCorridorS6R3(KeyCorridor):
-    def __init__(self, **kwargs):
-        super().__init__(room_size=6, num_rows=3, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-KeyCorridorS3R1-v0", entry_point="gym_minigrid.envs:KeyCorridorS3R1"
+    id="MiniGrid-KeyCorridorS3R1-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=3,
+    num_rows=1,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-KeyCorridorS3R2-v0", entry_point="gym_minigrid.envs:KeyCorridorS3R2"
+    id="MiniGrid-KeyCorridorS3R2-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=3,
+    num_rows=2,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-KeyCorridorS3R3-v0", entry_point="gym_minigrid.envs:KeyCorridorS3R3"
+    id="MiniGrid-KeyCorridorS3R3-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=3,
+    num_rows=3,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-KeyCorridorS4R3-v0", entry_point="gym_minigrid.envs:KeyCorridorS4R3"
+    id="MiniGrid-KeyCorridorS4R3-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=4,
+    num_rows=3,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-KeyCorridorS5R3-v0", entry_point="gym_minigrid.envs:KeyCorridorS5R3"
+    id="MiniGrid-KeyCorridorS5R3-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=5,
+    num_rows=3,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-KeyCorridorS6R3-v0", entry_point="gym_minigrid.envs:KeyCorridorS6R3"
+    id="MiniGrid-KeyCorridorS6R3-v0",
+    entry_point="gym_minigrid.envs.keycorridor:KeyCorridorEnv",
+    room_size=6,
+    num_rows=3,
 )
 )

+ 17 - 20
gym_minigrid/envs/lavagap.py

@@ -58,23 +58,20 @@ class LavaGapEnv(MiniGridEnv):
         )
         )
 
 
 
 
-class LavaGapS5Env(LavaGapEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=5, **kwargs)
-
-
-class LavaGapS6Env(LavaGapEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-
-class LavaGapS7Env(LavaGapEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=7, **kwargs)
-
-
-register(id="MiniGrid-LavaGapS5-v0", entry_point="gym_minigrid.envs:LavaGapS5Env")
-
-register(id="MiniGrid-LavaGapS6-v0", entry_point="gym_minigrid.envs:LavaGapS6Env")
-
-register(id="MiniGrid-LavaGapS7-v0", entry_point="gym_minigrid.envs:LavaGapS7Env")
+register(
+    id="MiniGrid-LavaGapS5-v0",
+    entry_point="gym_minigrid.envs.lavagap:LavaGapEnv",
+    size=5,
+)
+
+register(
+    id="MiniGrid-LavaGapS6-v0",
+    entry_point="gym_minigrid.envs.lavagap:LavaGapEnv",
+    size=6,
+)
+
+register(
+    id="MiniGrid-LavaGapS7-v0",
+    entry_point="gym_minigrid.envs.lavagap:LavaGapEnv",
+    size=7,
+)

+ 10 - 5
gym_minigrid/envs/lockedroom.py

@@ -2,7 +2,7 @@ from gym_minigrid.minigrid import COLOR_NAMES, Door, Goal, Grid, Key, MiniGridEn
 from gym_minigrid.register import register
 from gym_minigrid.register import register
 
 
 
 
-class Room:
+class LockedRoom:
     def __init__(self, top, size, doorPos):
     def __init__(self, top, size, doorPos):
         self.top = top
         self.top = top
         self.size = size
         self.size = size
@@ -16,7 +16,7 @@ class Room:
         return env._rand_pos(topX + 1, topX + sizeX - 1, topY + 1, topY + sizeY - 1)
         return env._rand_pos(topX + 1, topX + sizeX - 1, topY + 1, topY + sizeY - 1)
 
 
 
 
-class LockedRoom(MiniGridEnv):
+class LockedRoomEnv(MiniGridEnv):
     """
     """
     Environment in which the agent is instructed to go to a given object
     Environment in which the agent is instructed to go to a given object
     named using an English text string
     named using an English text string
@@ -56,8 +56,10 @@ class LockedRoom(MiniGridEnv):
 
 
             roomW = lWallIdx + 1
             roomW = lWallIdx + 1
             roomH = height // 3 + 1
             roomH = height // 3 + 1
-            self.rooms.append(Room((0, j), (roomW, roomH), (lWallIdx, j + 3)))
-            self.rooms.append(Room((rWallIdx, j), (roomW, roomH), (rWallIdx, j + 3)))
+            self.rooms.append(LockedRoom((0, j), (roomW, roomH), (lWallIdx, j + 3)))
+            self.rooms.append(
+                LockedRoom((rWallIdx, j), (roomW, roomH), (rWallIdx, j + 3))
+            )
 
 
         # Choose one random room to be locked
         # Choose one random room to be locked
         lockedRoom = self._rand_elem(self.rooms)
         lockedRoom = self._rand_elem(self.rooms)
@@ -101,4 +103,7 @@ class LockedRoom(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-register(id="MiniGrid-LockedRoom-v0", entry_point="gym_minigrid.envs:LockedRoom")
+register(
+    id="MiniGrid-LockedRoom-v0",
+    entry_point="gym_minigrid.envs.lockedroom:LockedRoomEnv",
+)

+ 12 - 41
gym_minigrid/envs/memory.py

@@ -96,67 +96,38 @@ class MemoryEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class MemoryS17Random(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=17, random_length=True, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-MemoryS17Random-v0",
     id="MiniGrid-MemoryS17Random-v0",
-    entry_point="gym_minigrid.envs:MemoryS17Random",
+    entry_point="gym_minigrid.envs.memory:MemoryEnv",
+    size=17,
+    random_length=True,
 )
 )
 
 
-
-class MemoryS13Random(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=13, random_length=True, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-MemoryS13Random-v0",
     id="MiniGrid-MemoryS13Random-v0",
-    entry_point="gym_minigrid.envs:MemoryS13Random",
+    entry_point="gym_minigrid.envs.memory:MemoryEnv",
+    size=13,
+    random_length=True,
 )
 )
 
 
 
 
-class MemoryS13(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=13, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-MemoryS13-v0",
     id="MiniGrid-MemoryS13-v0",
-    entry_point="gym_minigrid.envs:MemoryS13",
+    entry_point="gym_minigrid.envs.memory:MemoryEnv",
+    size=13,
 )
 )
 
 
 
 
-class MemoryS11(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=11, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-MemoryS11-v0",
     id="MiniGrid-MemoryS11-v0",
-    entry_point="gym_minigrid.envs:MemoryS11",
+    entry_point="gym_minigrid.envs.memory:MemoryEnv",
+    size=11,
 )
 )
 
 
-
-class MemoryS9(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=9, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-MemoryS9-v0",
-    entry_point="gym_minigrid.envs:MemoryS9",
+    id="MiniGrid-MemoryS9-v0", entry_point="gym_minigrid.envs.memory:MemoryEnv", size=9
 )
 )
 
 
-
-class MemoryS7(MemoryEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=7, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-MemoryS7-v0",
-    entry_point="gym_minigrid.envs:MemoryS7",
+    id="MiniGrid-MemoryS7-v0", entry_point="gym_minigrid.envs.memory:MemoryEnv", size=7
 )
 )

+ 18 - 20
gym_minigrid/envs/multiroom.py

@@ -2,7 +2,7 @@ from gym_minigrid.minigrid import COLOR_NAMES, Door, Goal, Grid, MiniGridEnv, Wa
 from gym_minigrid.register import register
 from gym_minigrid.register import register
 
 
 
 
-class Room:
+class MultiRoom:
     def __init__(self, top, size, entryDoorPos, exitDoorPos):
     def __init__(self, top, size, entryDoorPos, exitDoorPos):
         self.top = top
         self.top = top
         self.size = size
         self.size = size
@@ -153,7 +153,7 @@ class MultiRoomEnv(MiniGridEnv):
                 return False
                 return False
 
 
         # Add this room to the list
         # Add this room to the list
-        roomList.append(Room((topX, topY), (sizeX, sizeY), entryDoorPos, None))
+        roomList.append(MultiRoom((topX, topY), (sizeX, sizeY), entryDoorPos, None))
 
 
         # If this was the last room, stop
         # If this was the last room, stop
         if numLeft == 1:
         if numLeft == 1:
@@ -200,27 +200,25 @@ class MultiRoomEnv(MiniGridEnv):
         return True
         return True
 
 
 
 
-class MultiRoomEnvN2S4(MultiRoomEnv):
-    def __init__(self, **kwargs):
-        super().__init__(minNumRooms=2, maxNumRooms=2, maxRoomSize=4, **kwargs)
-
-
-class MultiRoomEnvN4S5(MultiRoomEnv):
-    def __init__(self, **kwargs):
-        super().__init__(minNumRooms=4, maxNumRooms=4, maxRoomSize=5, **kwargs)
-
-
-class MultiRoomEnvN6(MultiRoomEnv):
-    def __init__(self, **kwargs):
-        super().__init__(minNumRooms=6, maxNumRooms=6, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-MultiRoom-N2-S4-v0", entry_point="gym_minigrid.envs:MultiRoomEnvN2S4"
+    id="MiniGrid-MultiRoom-N2-S4-v0",
+    entry_point="gym_minigrid.envs.multiroom:MultiRoomEnv",
+    minNumRooms=2,
+    maxNumRooms=2,
+    maxRoomSize=4,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-MultiRoom-N4-S5-v0", entry_point="gym_minigrid.envs:MultiRoomEnvN4S5"
+    id="MiniGrid-MultiRoom-N4-S5-v0",
+    entry_point="gym_minigrid.envs.multiroom:MultiRoomEnv",
+    minNumRooms=4,
+    maxNumRooms=4,
+    maxRoomSize=5,
 )
 )
 
 
-register(id="MiniGrid-MultiRoom-N6-v0", entry_point="gym_minigrid.envs:MultiRoomEnvN6")
+register(
+    id="MiniGrid-MultiRoom-N6-v0",
+    entry_point="gym_minigrid.envs.multiroom:MultiRoomEnv",
+    minNumRooms=6,
+    maxNumRooms=6,
+)

+ 38 - 29
gym_minigrid/envs/obstructedmaze.py

@@ -108,16 +108,6 @@ class ObstructedMaze_1Dlhb(ObstructedMazeEnv):
         self.place_agent(0, 0)
         self.place_agent(0, 0)
 
 
 
 
-class ObstructedMaze_1Dl(ObstructedMaze_1Dlhb):
-    def __init__(self, **kwargs):
-        super().__init__(False, False, **kwargs)
-
-
-class ObstructedMaze_1Dlh(ObstructedMaze_1Dlhb):
-    def __init__(self, **kwargs):
-        super().__init__(True, False, **kwargs)
-
-
 class ObstructedMaze_Full(ObstructedMazeEnv):
 class ObstructedMaze_Full(ObstructedMazeEnv):
     """
     """
     A blue ball is hidden in one of the 4 corners of a 3x3 maze. Doors
     A blue ball is hidden in one of the 4 corners of a 3x3 maze. Doors
@@ -191,57 +181,76 @@ class ObstructedMaze_2Dlhb(ObstructedMaze_Full):
         super().__init__((2, 1), True, True, 1, 4, **kwargs)
         super().__init__((2, 1), True, True, 1, 4, **kwargs)
 
 
 
 
-class ObstructedMaze_1Q(ObstructedMaze_Full):
-    def __init__(self, **kwargs):
-        super().__init__((1, 1), True, True, 1, 5, **kwargs)
-
-
-class ObstructedMaze_2Q(ObstructedMaze_Full):
-    def __init__(self, **kwargs):
-        super().__init__((1, 1), True, True, 2, 11, **kwargs)
-
-
 register(
 register(
     id="MiniGrid-ObstructedMaze-1Dl-v0",
     id="MiniGrid-ObstructedMaze-1Dl-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_1Dl",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_1Dlhb",
+    key_in_box=False,
+    blocked=False,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-1Dlh-v0",
     id="MiniGrid-ObstructedMaze-1Dlh-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_1Dlh",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_1Dlhb",
+    key_in_box=True,
+    blocked=False,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-1Dlhb-v0",
     id="MiniGrid-ObstructedMaze-1Dlhb-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_1Dlhb",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_1Dlhb",
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-2Dl-v0",
     id="MiniGrid-ObstructedMaze-2Dl-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_2Dl",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
+    agent_room=(2, 1),
+    key_in_box=False,
+    blocked=False,
+    num_quarters=1,
+    num_rooms_visited=4,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-2Dlh-v0",
     id="MiniGrid-ObstructedMaze-2Dlh-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_2Dlh",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
+    agent_room=(2, 1),
+    key_in_box=True,
+    blocked=False,
+    num_quarters=1,
+    num_rooms_visited=4,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-2Dlhb-v0",
     id="MiniGrid-ObstructedMaze-2Dlhb-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_2Dlhb",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
+    agent_room=(2, 1),
+    key_in_box=True,
+    blocked=True,
+    num_quarters=1,
+    num_rooms_visited=4,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-1Q-v0",
     id="MiniGrid-ObstructedMaze-1Q-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_1Q",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
+    agent_room=(1, 1),
+    key_in_box=True,
+    blocked=True,
+    num_quarters=1,
+    num_rooms_visited=5,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-2Q-v0",
     id="MiniGrid-ObstructedMaze-2Q-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_2Q",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
+    agent_room=(2, 1),
+    key_in_box=True,
+    blocked=True,
+    num_quarters=2,
+    num_rooms_visited=11,
 )
 )
 
 
 register(
 register(
     id="MiniGrid-ObstructedMaze-Full-v0",
     id="MiniGrid-ObstructedMaze-Full-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_Full",
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full",
 )
 )

+ 5 - 2
gym_minigrid/envs/playground_v0.py

@@ -2,7 +2,7 @@ from gym_minigrid.minigrid import COLOR_NAMES, Ball, Box, Door, Grid, Key, MiniG
 from gym_minigrid.register import register
 from gym_minigrid.register import register
 
 
 
 
-class PlaygroundV0(MiniGridEnv):
+class PlaygroundEnv(MiniGridEnv):
     """
     """
     Environment with multiple rooms and random objects.
     Environment with multiple rooms and random objects.
     This environment has no specific goals or rewards.
     This environment has no specific goals or rewards.
@@ -72,4 +72,7 @@ class PlaygroundV0(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-register(id="MiniGrid-Playground-v0", entry_point="gym_minigrid.envs:PlaygroundV0")
+register(
+    id="MiniGrid-Playground-v0",
+    entry_point="gym_minigrid.envs.playground:PlaygroundEnv",
+)

+ 10 - 8
gym_minigrid/envs/putnear.py

@@ -113,11 +113,13 @@ class PutNearEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class PutNear8x8N3(PutNearEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=8, numObjs=3, **kwargs)
-
-
-register(id="MiniGrid-PutNear-6x6-N2-v0", entry_point="gym_minigrid.envs:PutNearEnv")
-
-register(id="MiniGrid-PutNear-8x8-N3-v0", entry_point="gym_minigrid.envs:PutNear8x8N3")
+register(
+    id="MiniGrid-PutNear-6x6-N2-v0", entry_point="gym_minigrid.envs.putnear:PutNearEnv"
+)
+
+register(
+    id="MiniGrid-PutNear-8x8-N3-v0",
+    entry_point="gym_minigrid.envs.putnear:PutNearEnv",
+    size=8,
+    numObjs=3,
+)

+ 5 - 7
gym_minigrid/envs/redbluedoors.py

@@ -65,15 +65,13 @@ class RedBlueDoorEnv(MiniGridEnv):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-class RedBlueDoorEnv6x6(RedBlueDoorEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-
 register(
 register(
-    id="MiniGrid-RedBlueDoors-6x6-v0", entry_point="gym_minigrid.envs:RedBlueDoorEnv6x6"
+    id="MiniGrid-RedBlueDoors-6x6-v0",
+    entry_point="gym_minigrid.envs.redbluedoors:RedBlueDoorEnv",
+    size=6,
 )
 )
 
 
 register(
 register(
-    id="MiniGrid-RedBlueDoors-8x8-v0", entry_point="gym_minigrid.envs:RedBlueDoorEnv"
+    id="MiniGrid-RedBlueDoors-8x8-v0",
+    entry_point="gym_minigrid.envs.redbluedoors:RedBlueDoorEnv",
 )
 )

+ 2 - 2
gym_minigrid/envs/unlock.py

@@ -2,7 +2,7 @@ from gym_minigrid.register import register
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.roomgrid import RoomGrid
 
 
 
 
-class Unlock(RoomGrid):
+class UnlockEnv(RoomGrid):
     """
     """
     Unlock a door
     Unlock a door
     """
     """
@@ -41,4 +41,4 @@ class Unlock(RoomGrid):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-register(id="MiniGrid-Unlock-v0", entry_point="gym_minigrid.envs:Unlock")
+register(id="MiniGrid-Unlock-v0", entry_point="gym_minigrid.envs.unlock:UnlockEnv")

+ 5 - 2
gym_minigrid/envs/unlockpickup.py

@@ -2,7 +2,7 @@ from gym_minigrid.register import register
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.roomgrid import RoomGrid
 
 
 
 
-class UnlockPickup(RoomGrid):
+class UnlockPickupEnv(RoomGrid):
     """
     """
     Unlock a door, then pick up a box in another room
     Unlock a door, then pick up a box in another room
     """
     """
@@ -43,4 +43,7 @@ class UnlockPickup(RoomGrid):
         return obs, reward, done, info
         return obs, reward, done, info
 
 
 
 
-register(id="MiniGrid-UnlockPickup-v0", entry_point="gym_minigrid.envs:UnlockPickup")
+register(
+    id="MiniGrid-UnlockPickup-v0",
+    entry_point="gym_minigrid.envs.unlockpickup:UnlockPickupEnv",
+)

+ 4 - 2
gym_minigrid/register.py

@@ -3,12 +3,14 @@ from gym.envs.registration import register as gym_register
 env_list = []
 env_list = []
 
 
 
 
-def register(id, entry_point, reward_threshold=0.95):
+def register(id, entry_point, reward_threshold=0.95, **kwargs):
     assert id.startswith("MiniGrid-")
     assert id.startswith("MiniGrid-")
     assert id not in env_list
     assert id not in env_list
 
 
     # Register the environment with OpenAI gym
     # Register the environment with OpenAI gym
-    gym_register(id=id, entry_point=entry_point, reward_threshold=reward_threshold)
+    gym_register(
+        id=id, entry_point=entry_point, reward_threshold=reward_threshold, kwargs=kwargs
+    )
 
 
     # Add the environment to the set
     # Add the environment to the set
     env_list.append(id)
     env_list.append(id)