(self, **kwargs)
| 51 | return obs, reward, terminated, truncated, info |
| 52 | |
| 53 | def reset(self, **kwargs): |
| 54 | if self.game_over: |
| 55 | obs, info = self.env.reset(**kwargs) |
| 56 | else: |
| 57 | # Fake terminal from a life loss — advance one frame instead of |
| 58 | # resetting so the game keeps its remaining lives. |
| 59 | obs, _, terminated, truncated, info = self.env.step(0) |
| 60 | if terminated or truncated: |
| 61 | obs, info = self.env.reset(**kwargs) |
| 62 | self.lives = info.get("lives", 0) |
| 63 | return obs, info |
| 64 | |
| 65 | ENV_IDS = { |
| 66 | "breakout": "ALE/Breakout-v5", |