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
 |