matrx.grid_world.GridWorld¶
-
class
GridWorld
(shape, tick_duration, simulation_goal, rnd_seed=1, visualization_bg_clr='#C2C2C2', visualization_bg_img=None, verbose=False, world_id=0)¶ The Gridworld is the representation of the world and the core of MATRX
- Attributes
current_nr_ticks
Int: Current tick at which the gridworld is.
environment_objects
Dict: Dictionary of all non-agent environment objects, keys are the IDs, values are the registered objects.
grid
Numpy 2D array: Numpy array of shape x by y.
is_done
Bool: Boolean that indicates whether the GridWorld is done: either stopped by the user or due to the goal having been achieved.
- loggers
registered_agents
Dict: Dictionary of all registered agents, keys are the IDs, values are the registered objects.
shape
list: [x,y] shape of the grid
simulation_goal
WorldGoal: The world goal of type WorldGoal, or a class that extends WorldGoal
tick_duration
float: the desired duration of one tick. The real tick_duration might be longer due to a large amount of
Methods
get_env_object
(self, requested_id[, obj_type])Fetch an object or agent from the GridWorld using its ID, optionally checking for its object type.
get_objects_in_range
(self, agent_loc, …)Get all objects of a specific obj type (normal objects or agent) within a certain range around an agent’s location.
initialize
(self, api_info)Initializes the gridworld instance and any connected visualizations via the API, then pauses the GridWorld.
remove_from_grid
(self, object_id[, …])Remove an object from the grid.
run
(self, api_info)Runs the gridworld instance until stopped via the visualization or the goal has been achieved.
Create a GridWorld instance.
With the constructor you can set a number of general properties and from the resulting instance you can call numerous methods to add new objects and/or agents.
- Parameters
- shapetuple or list
Denotes the width and height of the world you create.
- tick_durationfloat
The duration of a single ‘tick’ or loop in the game-loop of the world you create.
- simulation_goalWorldGoal, int, list or tuple
The goal or goals of the world, either a single WorldGoal, a list of such or a positive non-zero integer to denote the maximum number of ‘ticks’ the world(s) has to run.
- rnd_seedbool (optional, default, 1)
The master random seed set by the WorldBuilder on which all objects, agents and worlds are seeded. Should be a positive non-zero integer.
- visualization_bg_clrstring (optional, “C2C2C2”)
The color of the world when visualized using MATRX’ own visualisation server. A string representation of hexadecimal color.
- visualization_bg_imgstring (optional, None)
An optional background image of the world when visualized using MATRX’ own visualisation server. A string of the path to the image file. When None, no background image is used.
- verbosebool (optional, False)
Whether the GridWorld should be verbose and print development logs to the console.
- world_idint (optional, 0)
The ID of this world. Every new GridWorld instance should have a unique ID, such that the frontend knows when it has to reinitialize the visualization.
Examples
Create a world builder and generate 10 worlds and run them: >>> from matrx.world_builder import WorldBuilder >>> builder = WorldBuilder(shape=(10, 10)) >>> for gridworld in builder.worlds(): >>> gridworld.run()
Every gridworld received from builder.worlds() is a GridWorld instance.
- Attributes
current_nr_ticks
Int: Current tick at which the gridworld is.
environment_objects
Dict: Dictionary of all non-agent environment objects, keys are the IDs, values are the registered objects.
grid
Numpy 2D array: Numpy array of shape x by y.
is_done
Bool: Boolean that indicates whether the GridWorld is done: either stopped by the user or due to the goal having been achieved.
- loggers
registered_agents
Dict: Dictionary of all registered agents, keys are the IDs, values are the registered objects.
shape
list: [x,y] shape of the grid
simulation_goal
WorldGoal: The world goal of type WorldGoal, or a class that extends WorldGoal
tick_duration
float: the desired duration of one tick. The real tick_duration might be longer due to a large amount of
Methods
get_env_object
(self, requested_id[, obj_type])Fetch an object or agent from the GridWorld using its ID, optionally checking for its object type.
get_objects_in_range
(self, agent_loc, …)Get all objects of a specific obj type (normal objects or agent) within a certain range around an agent’s location.
initialize
(self, api_info)Initializes the gridworld instance and any connected visualizations via the API, then pauses the GridWorld.
remove_from_grid
(self, object_id[, …])Remove an object from the grid.
run
(self, api_info)Runs the gridworld instance until stopped via the visualization or the goal has been achieved.
-
__init__
(self, shape, tick_duration, simulation_goal, rnd_seed=1, visualization_bg_clr='#C2C2C2', visualization_bg_img=None, verbose=False, world_id=0)¶ Create a GridWorld instance.
With the constructor you can set a number of general properties and from the resulting instance you can call numerous methods to add new objects and/or agents.
- Parameters
- shapetuple or list
Denotes the width and height of the world you create.
- tick_durationfloat
The duration of a single ‘tick’ or loop in the game-loop of the world you create.
- simulation_goalWorldGoal, int, list or tuple
The goal or goals of the world, either a single WorldGoal, a list of such or a positive non-zero integer to denote the maximum number of ‘ticks’ the world(s) has to run.
- rnd_seedbool (optional, default, 1)
The master random seed set by the WorldBuilder on which all objects, agents and worlds are seeded. Should be a positive non-zero integer.
- visualization_bg_clrstring (optional, “C2C2C2”)
The color of the world when visualized using MATRX’ own visualisation server. A string representation of hexadecimal color.
- visualization_bg_imgstring (optional, None)
An optional background image of the world when visualized using MATRX’ own visualisation server. A string of the path to the image file. When None, no background image is used.
- verbosebool (optional, False)
Whether the GridWorld should be verbose and print development logs to the console.
- world_idint (optional, 0)
The ID of this world. Every new GridWorld instance should have a unique ID, such that the frontend knows when it has to reinitialize the visualization.
Examples
Create a world builder and generate 10 worlds and run them: >>> from matrx.world_builder import WorldBuilder >>> builder = WorldBuilder(shape=(10, 10)) >>> for gridworld in builder.worlds(): >>> gridworld.run()
Every gridworld received from builder.worlds() is a GridWorld instance.
Methods
__init__
(self, shape, tick_duration, …[, …])Create a GridWorld instance.
get_env_object
(self, requested_id[, obj_type])Fetch an object or agent from the GridWorld using its ID, optionally checking for its object type.
get_objects_in_range
(self, agent_loc, …)Get all objects of a specific obj type (normal objects or agent) within a certain range around an agent’s location.
initialize
(self, api_info)Initializes the gridworld instance and any connected visualizations via the API, then pauses the GridWorld.
remove_from_grid
(self, object_id[, …])Remove an object from the grid.
run
(self, api_info)Runs the gridworld instance until stopped via the visualization or the goal has been achieved.
Attributes
Int: Current tick at which the gridworld is.
Dict: Dictionary of all non-agent environment objects, keys are the IDs, values are the registered objects.
Numpy 2D array: Numpy array of shape x by y.
Bool: Boolean that indicates whether the GridWorld is done: either stopped by the user or due to the goal having been achieved.
loggers
Dict: Dictionary of all registered agents, keys are the IDs, values are the registered objects.
list: [x,y] shape of the grid
WorldGoal: The world goal of type WorldGoal, or a class that extends WorldGoal
float: the desired duration of one tick.