This PR adds an abstract class to define the interface for Discrete Spaces (Grids and Networks).
Some points to consider:
A default capacity can be set in the __init__, which can be overriden by a capacity set in set_cells. There might be some performance benefits if only a default capacity was allowed (I think we can consider changing it after we have the concrete implementation)
Distinction between "empty" and "free" cells. Empty cells are cells were no agent is currently present, free cells are cells where some agents may be present but there is some remaining capacity.
This PR adds an abstract class to define the interface for Discrete Spaces (Grids and Networks).
Some points to consider:
__init__
, which can be overriden by a capacity set in set_cells. There might be some performance benefits if only a default capacity was allowed (I think we can consider changing it after we have the concrete implementation)