瀏覽代碼

Initial commit

StringTheory 2 年之前
父節點
當前提交
d53edeb5a2

+ 1 - 1
gym_minigrid/envs/__init__.py

@@ -10,7 +10,7 @@ from gym_minigrid.envs.keycorridor import *
 from gym_minigrid.envs.unlock import *
 from gym_minigrid.envs.unlockpickup import *
 from gym_minigrid.envs.blockedunlockpickup import *
-from gym_minigrid.envs.playground_v0 import *
+from gym_minigrid.envs.playground import *
 from gym_minigrid.envs.redbluedoors import *
 from gym_minigrid.envs.obstructedmaze import *
 from gym_minigrid.envs.memory import *

+ 2 - 2
gym_minigrid/envs/blockedunlockpickup.py

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

+ 16 - 39
gym_minigrid/envs/crossing.py

@@ -82,74 +82,51 @@ class CrossingEnv(MiniGridEnv):
             else "find the opening and get to the green goal square"
         )
 
-class LavaCrossingEnv(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=9, num_crossings=1)
-
-class LavaCrossingS9N2Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=9, num_crossings=2)
-
-class LavaCrossingS9N3Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=9, num_crossings=3)
-
-class LavaCrossingS11N5Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=11, num_crossings=5)
 
 register(
     id='MiniGrid-LavaCrossingS9N1-v0',
-    entry_point='gym_minigrid.envs:LavaCrossingEnv'
+    entry_point='gym_minigrid.envs.crossing:CrossingEnv',
+    size=9, num_crossings=1
 )
 
 register(
     id='MiniGrid-LavaCrossingS9N2-v0',
-    entry_point='gym_minigrid.envs:LavaCrossingS9N2Env'
+    entry_point='gym_minigrid.envs.crossing:CrossingEnv',
+    size=9, num_crossings=2
 )
 
 register(
     id='MiniGrid-LavaCrossingS9N3-v0',
-    entry_point='gym_minigrid.envs:LavaCrossingS9N3Env'
+    entry_point='gym_minigrid.envs.crossing:CrossingEnv',
+    size=9, num_crossings=3
 )
 
 register(
     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):
-        super().__init__(size=9, num_crossings=1, obstacle_type=Wall)
-
-class SimpleCrossingS9N2Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=9, num_crossings=2, obstacle_type=Wall)
-
-class SimpleCrossingS9N3Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=9, num_crossings=3, obstacle_type=Wall)
-
-class SimpleCrossingS11N5Env(CrossingEnv):
-    def __init__(self):
-        super().__init__(size=11, num_crossings=5, obstacle_type=Wall)
-
 register(
     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(
     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(
     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(
     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
 )

+ 4 - 9
gym_minigrid/envs/distshift.py

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

+ 8 - 15
gym_minigrid/envs/doorkey.py

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

+ 11 - 25
gym_minigrid/envs/dynamicobstacles.py

@@ -88,52 +88,38 @@ class DynamicObstaclesEnv(MiniGridEnv):
 
         return obs, reward, done, info
 
-class DynamicObstaclesEnv5x5(DynamicObstaclesEnv):
-    def __init__(self):
-        super().__init__(size=5, n_obstacles=2)
-
-class DynamicObstaclesRandomEnv5x5(DynamicObstaclesEnv):
-    def __init__(self):
-        super().__init__(size=5, agent_start_pos=None, n_obstacles=2)
-
-class DynamicObstaclesEnv6x6(DynamicObstaclesEnv):
-    def __init__(self):
-        super().__init__(size=6, n_obstacles=3)
-
-class DynamicObstaclesRandomEnv6x6(DynamicObstaclesEnv):
-    def __init__(self):
-        super().__init__(size=6, agent_start_pos=None, n_obstacles=3)
-
-class DynamicObstaclesEnv16x16(DynamicObstaclesEnv):
-    def __init__(self):
-        super().__init__(size=16, n_obstacles=8)
 
 register(
     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(
     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(
     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(
     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(
     id='MiniGrid-Dynamic-Obstacles-8x8-v0',
-    entry_point='gym_minigrid.envs:DynamicObstaclesEnv'
+    entry_point='gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv',
 )
 
 register(
     id='MiniGrid-Dynamic-Obstacles-16x16-v0',
-    entry_point='gym_minigrid.envs:DynamicObstaclesEnv16x16'
+    entry_point='gym_minigrid.envs.dynamicobstacles:DynamicObstaclesEnv',
+    size=16, n_obstacles=8
 )

+ 11 - 25
gym_minigrid/envs/empty.py

@@ -41,52 +41,38 @@ class EmptyEnv(MiniGridEnv):
 
         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):
-        super().__init__(size=5, agent_start_pos=None)
-
-class EmptyEnv6x6(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=6, **kwargs)
-
-class EmptyRandomEnv6x6(EmptyEnv):
-    def __init__(self):
-        super().__init__(size=6, agent_start_pos=None)
-
-class EmptyEnv16x16(EmptyEnv):
-    def __init__(self, **kwargs):
-        super().__init__(size=16, **kwargs)
 
 register(
     id='MiniGrid-Empty-5x5-v0',
-    entry_point='gym_minigrid.envs:EmptyEnv5x5'
+    entry_point='gym_minigrid.envs.empty:EmptyEnv',
+    size=5
 )
 
 register(
     id='MiniGrid-Empty-Random-5x5-v0',
-    entry_point='gym_minigrid.envs:EmptyRandomEnv5x5'
+    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'
+    entry_point='gym_minigrid.envs.empty:EmptyEnv',
+size=6,
 )
 
 register(
     id='MiniGrid-Empty-Random-6x6-v0',
-    entry_point='gym_minigrid.envs:EmptyRandomEnv6x6'
+    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'
+    entry_point='gym_minigrid.envs.empty:EmptyEnv',
 )
 
 register(
     id='MiniGrid-Empty-16x16-v0',
-    entry_point='gym_minigrid.envs:EmptyEnv16x16'
+    entry_point='gym_minigrid.envs.empty:EmptyEnv',
+size=16,
 )

+ 5 - 10
gym_minigrid/envs/fetch.py

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

+ 2 - 1
gym_minigrid/envs/fourrooms.py

@@ -72,7 +72,8 @@ class FourRoomsEnv(MiniGridEnv):
         obs, reward, done, info = MiniGridEnv.step(self, action)
         return obs, reward, done, info
 
+
 register(
     id='MiniGrid-FourRooms-v0',
-    entry_point='gym_minigrid.envs:FourRoomsEnv'
+    entry_point='gym_minigrid.envs.fourrooms:FourRoomsEnv'
 )

+ 5 - 10
gym_minigrid/envs/gotodoor.py

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

+ 3 - 5
gym_minigrid/envs/gotoobject.py

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

+ 19 - 54
gym_minigrid/envs/keycorridor.py

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

+ 7 - 15
gym_minigrid/envs/lavagap.py

@@ -7,7 +7,7 @@ class LavaGapEnv(MiniGridEnv):
     This environment is similar to LavaCrossing but simpler in structure.
     """
 
-    def __init__(self, size, obstacle_type=Lava, seed=None):
+    def __init__(self, size, obstacle_type=Lava):
         self.obstacle_type = obstacle_type
         super().__init__(
             grid_size=size,
@@ -52,29 +52,21 @@ class LavaGapEnv(MiniGridEnv):
             else "find the opening and get to the green goal square"
         )
 
-class LavaGapS5Env(LavaGapEnv):
-    def __init__(self):
-        super().__init__(size=5)
-
-class LavaGapS6Env(LavaGapEnv):
-    def __init__(self):
-        super().__init__(size=6)
-
-class LavaGapS7Env(LavaGapEnv):
-    def __init__(self):
-        super().__init__(size=7)
 
 register(
     id='MiniGrid-LavaGapS5-v0',
-    entry_point='gym_minigrid.envs:LavaGapS5Env'
+    entry_point='gym_minigrid.envs.lavagap:LavaGapEnv',
+    size=5
 )
 
 register(
     id='MiniGrid-LavaGapS6-v0',
-    entry_point='gym_minigrid.envs:LavaGapS6Env'
+    entry_point='gym_minigrid.envs.lavagap:LavaGapEnv',
+    size=6
 )
 
 register(
     id='MiniGrid-LavaGapS7-v0',
-    entry_point='gym_minigrid.envs:LavaGapS7Env'
+    entry_point='gym_minigrid.envs.lavagap:LavaGapEnv',
+    size=7
 )

+ 5 - 5
gym_minigrid/envs/lockedroom.py

@@ -2,7 +2,7 @@ from gym import spaces
 from gym_minigrid.minigrid import *
 from gym_minigrid.register import register
 
-class Room:
+class LockedRoom:
     def __init__(self,
         top,
         size,
@@ -22,7 +22,7 @@ class Room:
             topY + 1, topY + sizeY - 1
         )
 
-class LockedRoom(MiniGridEnv):
+class LockedRoomEnv(MiniGridEnv):
     """
     Environment in which the agent is instructed to go to a given object
     named using an English text string
@@ -65,12 +65,12 @@ class LockedRoom(MiniGridEnv):
 
             roomW = lWallIdx + 1
             roomH = height // 3 + 1
-            self.rooms.append(Room(
+            self.rooms.append(LockedRoom(
                 (0, j),
                 (roomW, roomH),
                 (lWallIdx, j + 3)
             ))
-            self.rooms.append(Room(
+            self.rooms.append(LockedRoom(
                 (rWallIdx, j),
                 (roomW, roomH),
                 (rWallIdx, j + 3)
@@ -120,5 +120,5 @@ class LockedRoom(MiniGridEnv):
 
 register(
     id='MiniGrid-LockedRoom-v0',
-    entry_point='gym_minigrid.envs:LockedRoom'
+    entry_point='gym_minigrid.envs.lockedroom:LockedRoomEnv'
 )

+ 13 - 28
gym_minigrid/envs/memory.py

@@ -13,7 +13,7 @@ class MemoryEnv(MiniGridEnv):
 
     def __init__(
         self,
-        seed,
+        seed=None,
         size=8,
         random_length=False,
     ):
@@ -99,56 +99,41 @@ class MemoryEnv(MiniGridEnv):
 
         return obs, reward, done, info
 
-class MemoryS17Random(MemoryEnv):
-    def __init__(self, seed=None):
-        super().__init__(seed=seed, size=17, random_length=True)
 
 register(
     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, seed=None):
-        super().__init__(seed=seed, size=13, random_length=True)
-
 register(
     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, seed=None):
-        super().__init__(seed=seed, size=13)
 
 register(
     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, seed=None):
-        super().__init__(seed=seed, size=11)
 
 register(
     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, seed=None):
-        super().__init__(seed=seed, size=9)
-
 register(
     id='MiniGrid-MemoryS9-v0',
-    entry_point='gym_minigrid.envs:MemoryS9',
+    entry_point='gym_minigrid.envs.memory:MemoryEnv',
+    size=9
 )
 
-class MemoryS7(MemoryEnv):
-    def __init__(self, seed=None):
-        super().__init__(seed=seed, size=7)
-
 register(
     id='MiniGrid-MemoryS7-v0',
-    entry_point='gym_minigrid.envs:MemoryS7',
+    entry_point='gym_minigrid.envs.memory:MemoryEnv',
+    size=7
 )

+ 13 - 27
gym_minigrid/envs/multiroom.py

@@ -1,7 +1,7 @@
 from gym_minigrid.minigrid import *
 from gym_minigrid.register import register
 
-class Room:
+class MultiRoom:
     def __init__(self,
         top,
         size,
@@ -173,7 +173,7 @@ class MultiRoomEnv(MiniGridEnv):
                 return False
 
         # Add this room to the list
-        roomList.append(Room(
+        roomList.append(MultiRoom(
             (topX, topY),
             (sizeX, sizeY),
             entryDoorPos,
@@ -236,40 +236,26 @@ class MultiRoomEnv(MiniGridEnv):
 
         return True
 
-class MultiRoomEnvN2S4(MultiRoomEnv):
-    def __init__(self):
-        super().__init__(
-            minNumRooms=2,
-            maxNumRooms=2,
-            maxRoomSize=4
-        )
-
-class MultiRoomEnvN4S5(MultiRoomEnv):
-    def __init__(self):
-        super().__init__(
-            minNumRooms=4,
-            maxNumRooms=4,
-            maxRoomSize=5
-        )
-
-class MultiRoomEnvN6(MultiRoomEnv):
-    def __init__(self):
-        super().__init__(
-            minNumRooms=6,
-            maxNumRooms=6
-        )
 
 register(
     id='MiniGrid-MultiRoom-N2-S4-v0',
-    entry_point='gym_minigrid.envs:MultiRoomEnvN2S4'
+    entry_point='gym_minigrid.envs.multiroom:MultiRoomEnv',
+    minNumRooms=2,
+    maxNumRooms=2,
+    maxRoomSize=4
 )
 
 register(
     id='MiniGrid-MultiRoom-N4-S5-v0',
-    entry_point='gym_minigrid.envs:MultiRoomEnvN4S5'
+    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'
+    entry_point='gym_minigrid.envs.multiroom:MultiRoomEnv',
+    minNumRooms=6,
+    maxNumRooms=6
 )

+ 22 - 36
gym_minigrid/envs/obstructedmaze.py

@@ -101,13 +101,6 @@ class ObstructedMaze_1Dlhb(ObstructedMazeEnv):
         self.obj, _ = self.add_object(1, 0, "ball", color=self.ball_to_find_color)
         self.place_agent(0, 0)
 
-class ObstructedMaze_1Dl(ObstructedMaze_1Dlhb):
-    def __init__(self, seed=None):
-        super().__init__(False, False, seed)
-
-class ObstructedMaze_1Dlh(ObstructedMaze_1Dlhb):
-    def __init__(self, seed=None):
-        super().__init__(True, False, seed)
 
 class ObstructedMaze_Full(ObstructedMazeEnv):
     """
@@ -157,68 +150,61 @@ class ObstructedMaze_Full(ObstructedMazeEnv):
         self.obj, _ = self.add_object(*ball_room, "ball", color=self.ball_to_find_color)
         self.place_agent(*self.agent_room)
 
-class ObstructedMaze_2Dl(ObstructedMaze_Full):
-    def __init__(self, seed=None):
-        super().__init__((2, 1), False, False, 1, 4, seed)
-
-class ObstructedMaze_2Dlh(ObstructedMaze_Full):
-    def __init__(self, seed=None):
-        super().__init__((2, 1), True, False, 1, 4, seed)
-
 
-class ObstructedMaze_2Dlhb(ObstructedMaze_Full):
-    def __init__(self, seed=None):
-        super().__init__((2, 1), True, True, 1, 4, seed)
-
-class ObstructedMaze_1Q(ObstructedMaze_Full):
-    def __init__(self, seed=None):
-        super().__init__((1, 1), True, True, 1, 5, seed)
-
-class ObstructedMaze_2Q(ObstructedMaze_Full):
-    def __init__(self, seed=None):
-        super().__init__((1, 1), True, True, 2, 11, seed)
 
 register(
     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(
     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(
     id="MiniGrid-ObstructedMaze-1Dlhb-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_1Dlhb"
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_1Dlhb"
 )
 
 register(
     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(
     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(
     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(
     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(
     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(
     id="MiniGrid-ObstructedMaze-Full-v0",
-    entry_point="gym_minigrid.envs:ObstructedMaze_Full"
-)
+    entry_point="gym_minigrid.envs.obstructedmaze:ObstructedMaze_Full"
+)

+ 2 - 2
gym_minigrid/envs/playground_v0.py

@@ -1,7 +1,7 @@
 from gym_minigrid.minigrid import *
 from gym_minigrid.register import register
 
-class PlaygroundV0(MiniGridEnv):
+class PlaygroundEnv(MiniGridEnv):
     """
     Environment with multiple rooms and random objects.
     This environment has no specific goals or rewards.
@@ -72,5 +72,5 @@ class PlaygroundV0(MiniGridEnv):
 
 register(
     id='MiniGrid-Playground-v0',
-    entry_point='gym_minigrid.envs:PlaygroundV0'
+    entry_point='gym_minigrid.envs.playground:PlaygroundEnv'
 )

+ 3 - 5
gym_minigrid/envs/putnear.py

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

+ 3 - 5
gym_minigrid/envs/redbluedoors.py

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

+ 2 - 2
gym_minigrid/envs/unlock.py

@@ -2,7 +2,7 @@ from gym_minigrid.minigrid import Ball
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.register import register
 
-class Unlock(RoomGrid):
+class UnlockEnv(RoomGrid):
     """
     Unlock a door
     """
@@ -42,5 +42,5 @@ class Unlock(RoomGrid):
 
 register(
     id='MiniGrid-Unlock-v0',
-    entry_point='gym_minigrid.envs:Unlock'
+    entry_point='gym_minigrid.envs.unlock:UnlockEnv'
 )

+ 2 - 2
gym_minigrid/envs/unlockpickup.py

@@ -2,7 +2,7 @@ from gym_minigrid.minigrid import Ball
 from gym_minigrid.roomgrid import RoomGrid
 from gym_minigrid.register import register
 
-class UnlockPickup(RoomGrid):
+class UnlockPickupEnv(RoomGrid):
     """
     Unlock a door, then pick up a box in another room
     """
@@ -44,5 +44,5 @@ class UnlockPickup(RoomGrid):
 
 register(
     id='MiniGrid-UnlockPickup-v0',
-    entry_point='gym_minigrid.envs:UnlockPickup'
+    entry_point='gym_minigrid.envs.unlockpickup:UnlockPickupEnv'
 )

+ 5 - 2
gym_minigrid/register.py

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