You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
991 B
32 lines
991 B
from __future__ import annotations
|
|
|
|
from minigrid.core.constants import COLOR_NAMES
|
|
from minigrid.core.mission import MissionSpace
|
|
from minigrid.core.roomgrid import RoomGrid
|
|
from minigrid.core.world_object import Ball
|
|
|
|
|
|
class AdversaryDoorPickup(AdversaryEnv):
|
|
def __init__(self, max_steps: int | None = None, **kwargs):
|
|
max_steps = 200
|
|
super().__init__(
|
|
mission_space=mission_space,
|
|
width=11,
|
|
num_cols=6,
|
|
max_steps=max_steps,
|
|
**kwargs,
|
|
)
|
|
|
|
def _gen_grid(self, width, height):
|
|
super()._gen_grid(width, height)
|
|
self.grid.vert_wall(int(width/2),0)
|
|
|
|
def step(self, action):
|
|
obs, reward, terminated, truncated, info = super().step(action)
|
|
|
|
if action == self.actions.pickup:
|
|
if self.carrying and self.carrying == self.obj:
|
|
reward = self.goal_reward
|
|
terminated = True
|
|
|
|
return obs, reward, terminated, truncated, info
|