New Szenario "Two_Rooms_One_Door"

This commit is contained in:
Steffen Illium
2023-07-12 15:59:21 +02:00
parent 836495a884
commit 9135a69da6
25 changed files with 223 additions and 45 deletions

View File

@ -41,6 +41,9 @@ class Entities(Objects):
val.add_observer(self)
return self
def __contains__(self, item):
return item in self._data
def __delitem__(self, name):
assert_str = 'This group of entity does not exist in this collection!'
assert any([key for key in name.keys() if key in self.keys()]), assert_str
@ -51,7 +54,10 @@ class Entities(Objects):
@property
def obs_pairs(self):
return [y for x in self for y in x.obs_pairs]
try:
return [y for x in self for y in x.obs_pairs]
except AttributeError:
print('OhOh (debug me)')
def by_pos(self, pos: (int, int)):
return self.pos_dict[pos]

View File

@ -82,7 +82,7 @@ class IsBoundMixin:
# noinspection PyUnresolvedReferences,PyTypeChecker
class HasBoundedMixin:
class HasBoundMixin:
@property
def obs_pairs(self):

View File

@ -37,7 +37,7 @@ class Objects:
def __init__(self, *args, **kwargs):
self._data = defaultdict(lambda: None)
self._observers = list()
self._observers = [self]
self.pos_dict = defaultdict(list)
def __len__(self):
@ -52,6 +52,7 @@ class Objects:
assert self._data[item.name] is None, f'{item.name} allready exists!!!'
self._data.update({item.name: item})
item.set_collection(self)
# self.notify_add_entity(item)
for observer in self.observers:
observer.notify_add_entity(item)
return self
@ -96,8 +97,6 @@ class Objects:
except StopIteration:
return None
def __getitem__(self, item):
if isinstance(item, (int, np.int64, np.int32)):
if item < 0:

View File

@ -4,7 +4,7 @@ import numpy as np
from marl_factory_grid.environment.entity.util import GlobalPosition
from marl_factory_grid.environment.groups.env_objects import EnvObjects
from marl_factory_grid.environment.groups.mixins import PositionMixin, HasBoundedMixin
from marl_factory_grid.environment.groups.mixins import PositionMixin, HasBoundMixin
from marl_factory_grid.environment.groups.objects import Objects
from marl_factory_grid.modules.zones import Zone
from marl_factory_grid.utils import helpers as h
@ -35,7 +35,7 @@ class Combined(PositionMixin, EnvObjects):
return [(name, None) for name in self.names]
class GlobalPositions(HasBoundedMixin, EnvObjects):
class GlobalPositions(HasBoundMixin, EnvObjects):
_entity = GlobalPosition
is_blocking_light = False,