MiniHCraft environments
List of environments representing abstractions from minigrid environments.
See submodules for each individual environement:
Minigrid name | Hcraft reference |
---|---|
Empty | hcraft.examples.minicraft.empty |
FourRooms | hcraft.examples.minicraft.fourrooms |
MultiRoom | hcraft.examples.minicraft.multiroom |
Crossing | hcraft.examples.minicraft.crossing |
KeyCorridor | hcraft.examples.minicraft.keycorridor |
DoorKey | hcraft.examples.minicraft.doorkey |
Unlock | hcraft.examples.minicraft.unlock |
UnlockPickup | hcraft.examples.minicraft.unlockpickup |
BlockedUnlockPickup | hcraft.examples.minicraft.unlockpickupblocked |
1"""# MiniHCraft environments 2 3List of environments representing abstractions from 4[minigrid environments](https://minigrid.farama.org/environments/minigrid/). 5 6See submodules for each individual environement: 7 8| Minigrid name | Hcraft reference | 9|:--------------------|:------------------------------------------------| 10| Empty | `hcraft.examples.minicraft.empty` | 11| FourRooms | `hcraft.examples.minicraft.fourrooms` | 12| MultiRoom | `hcraft.examples.minicraft.multiroom` | 13| Crossing | `hcraft.examples.minicraft.crossing` | 14| KeyCorridor | `hcraft.examples.minicraft.keycorridor` | 15| DoorKey | `hcraft.examples.minicraft.doorkey` | 16| Unlock | `hcraft.examples.minicraft.unlock` | 17| UnlockPickup | `hcraft.examples.minicraft.unlockpickup` | 18| BlockedUnlockPickup | `hcraft.examples.minicraft.unlockpickupblocked` | 19 20 21""" 22 23import inspect 24from pathlib import Path 25from typing import List, Type 26 27 28from hcraft.examples.minicraft.minicraft import MiniCraftEnv 29 30import hcraft.examples.minicraft.empty as empty 31import hcraft.examples.minicraft.fourrooms as fourrooms 32import hcraft.examples.minicraft.multiroom as multiroom 33import hcraft.examples.minicraft.crossing as crossing 34import hcraft.examples.minicraft.doorkey as doorkey 35import hcraft.examples.minicraft.unlock as unlock 36import hcraft.examples.minicraft.unlockpickup as unlockpickup 37import hcraft.examples.minicraft.unlockpickupblocked as unlockpickupblocked 38import hcraft.examples.minicraft.keycorridor as keycorridor 39 40from hcraft.examples.minicraft.empty import MiniHCraftEmpty 41from hcraft.examples.minicraft.fourrooms import MiniHCraftFourRooms 42from hcraft.examples.minicraft.multiroom import MiniHCraftMultiRoom 43from hcraft.examples.minicraft.crossing import MiniHCraftCrossing 44from hcraft.examples.minicraft.doorkey import MiniHCraftDoorKey 45from hcraft.examples.minicraft.unlock import MiniHCraftUnlock 46from hcraft.examples.minicraft.unlockpickup import MiniHCraftUnlockPickup 47from hcraft.examples.minicraft.unlockpickupblocked import MiniHCraftBlockedUnlockPickup 48from hcraft.examples.minicraft.keycorridor import MiniHCraftKeyCorridor 49 50 51MINICRAFT_ENVS: List[Type[MiniCraftEnv]] = [ 52 MiniHCraftEmpty, 53 MiniHCraftFourRooms, 54 MiniHCraftMultiRoom, 55 MiniHCraftCrossing, 56 MiniHCraftDoorKey, 57 MiniHCraftUnlock, 58 MiniHCraftUnlockPickup, 59 MiniHCraftBlockedUnlockPickup, 60 MiniHCraftKeyCorridor, 61] 62 63MINICRAFT_NAME_TO_ENV = {env.MINICRAFT_NAME: env for env in MINICRAFT_ENVS} 64 65__all__ = [ 66 "empty", 67 "fourrooms", 68 "multiroom", 69 "crossing", 70 "doorkey", 71 "unlock", 72 "unlockpickup", 73 "unlockpickupblocked", 74 "keycorridor", 75] 76 77MINICRAFT_GYM_ENVS = [] 78 79try: 80 import gymnasium as gym 81 82 ENV_PATH = "hcraft.examples.minicraft" 83 84 for env_name, env_class in MINICRAFT_NAME_TO_ENV.items(): 85 submodule = Path(inspect.getfile(env_class)).name.split(".")[0] 86 env_path = f"{ENV_PATH}.{submodule}:{env_class.__name__}" 87 gym_name = f"{env_name}-v1" 88 gym.register(id=gym_name, entry_point=env_path) 89 MINICRAFT_GYM_ENVS.append(gym_name) 90 91 92except ImportError: 93 pass