MiniCraft - Empty
Reproduces the minigrid Empty gridworld environment as a HierarchyCraft environment.
Minigrid representation:
HierarchyCraft requirements graph:
1from typing import List 2 3from hcraft.elements import Item, Zone 4from hcraft.task import GetItemTask 5from hcraft.transformation import Transformation, Use, Yield, PLAYER, CURRENT_ZONE 6 7from hcraft.examples.minicraft.minicraft import MiniCraftEnv 8 9 10MINICRAFT_NAME = "Empty" 11__doc__ = MiniCraftEnv.description(MINICRAFT_NAME, for_module_header=True) 12 13 14class MiniHCraftEmpty(MiniCraftEnv): 15 MINICRAFT_NAME = MINICRAFT_NAME 16 __doc__ = MiniCraftEnv.description(MINICRAFT_NAME) 17 18 ROOM = Zone("room") 19 """The one and only room.""" 20 21 GOAL = Item("goal") 22 """Goal to reach.""" 23 24 def __init__(self, **kwargs) -> None: 25 self.task = GetItemTask(self.GOAL) 26 super().__init__( 27 self.MINICRAFT_NAME, 28 purpose=self.task, 29 start_zone=self.ROOM, 30 **kwargs, 31 ) 32 33 def build_transformations(self) -> List[Transformation]: 34 find_goal = Transformation( 35 "find_goal", 36 inventory_changes=[Yield(CURRENT_ZONE, self.GOAL, max=0)], 37 zone=self.ROOM, 38 ) 39 40 reach_goal = Transformation( 41 "reach_goal", 42 inventory_changes=[ 43 Use(CURRENT_ZONE, self.GOAL, consume=1), 44 Yield(PLAYER, self.GOAL), 45 ], 46 ) 47 return [find_goal, reach_goal]
API Documentation
MINICRAFT_NAME =
'Empty'
class
MiniHCraftEmpty(typing.Generic[~ObsType, ~ActType]):
15class MiniHCraftEmpty(MiniCraftEnv): 16 MINICRAFT_NAME = MINICRAFT_NAME 17 __doc__ = MiniCraftEnv.description(MINICRAFT_NAME) 18 19 ROOM = Zone("room") 20 """The one and only room.""" 21 22 GOAL = Item("goal") 23 """Goal to reach.""" 24 25 def __init__(self, **kwargs) -> None: 26 self.task = GetItemTask(self.GOAL) 27 super().__init__( 28 self.MINICRAFT_NAME, 29 purpose=self.task, 30 start_zone=self.ROOM, 31 **kwargs, 32 ) 33 34 def build_transformations(self) -> List[Transformation]: 35 find_goal = Transformation( 36 "find_goal", 37 inventory_changes=[Yield(CURRENT_ZONE, self.GOAL, max=0)], 38 zone=self.ROOM, 39 ) 40 41 reach_goal = Transformation( 42 "reach_goal", 43 inventory_changes=[ 44 Use(CURRENT_ZONE, self.GOAL, consume=1), 45 Yield(PLAYER, self.GOAL), 46 ], 47 ) 48 return [find_goal, reach_goal]
Reproduces the minigrid Empty gridworld environment as a HierarchyCraft environment.
MiniHCraftEmpty(**kwargs)
25 def __init__(self, **kwargs) -> None: 26 self.task = GetItemTask(self.GOAL) 27 super().__init__( 28 self.MINICRAFT_NAME, 29 purpose=self.task, 30 start_zone=self.ROOM, 31 **kwargs, 32 )
Arguments:
- invalid_reward: Reward given to the agent for invalid actions. Defaults to -1.0.
- max_step: Maximum number of steps before episode truncation. If None, never truncates the episode. Defaults to None.
- render_window: Window using to render the environment with pygame.
34 def build_transformations(self) -> List[Transformation]: 35 find_goal = Transformation( 36 "find_goal", 37 inventory_changes=[Yield(CURRENT_ZONE, self.GOAL, max=0)], 38 zone=self.ROOM, 39 ) 40 41 reach_goal = Transformation( 42 "reach_goal", 43 inventory_changes=[ 44 Use(CURRENT_ZONE, self.GOAL, consume=1), 45 Yield(PLAYER, self.GOAL), 46 ], 47 ) 48 return [find_goal, reach_goal]
Build transformations for this MiniCraft environment
Inherited Members
- hcraft.examples.minicraft.minicraft.MiniCraftEnv
- description
- hcraft.env.HcraftEnv
- world
- invalid_reward
- max_step
- name
- render_window
- render_mode
- state
- current_step
- current_score
- cumulated_score
- episodes
- task_successes
- terminal_successes
- purpose
- metadata
- truncated
- observation_space
- action_space
- action_masks
- step
- render
- reset
- close
- all_behaviors
- solving_behavior
- planning_problem
- infos
- gymnasium.core.Env
- spec
- unwrapped
- np_random_seed
- np_random
- has_wrapper_attr
- get_wrapper_attr
- set_wrapper_attr