Spaces:
Runtime error
Runtime error
| import numpy as np | |
| class GridWorld: | |
| def __init__(self, max_steps=50): | |
| self.size = 4 | |
| self.start = (0, 0) | |
| self.goal = (3, 3) | |
| self.holes = [(1, 1), (1, 3), (3, 0)] | |
| self.actions = ['up', 'down', 'left', 'right'] | |
| self.max_steps = max_steps | |
| self.reset() | |
| def reset(self): | |
| self.state = self.start | |
| self.steps = 0 | |
| return self.state | |
| def step(self, action): | |
| x, y = self.state | |
| self.steps += 1 | |
| if action == 'up': x = max(0, x - 1) | |
| elif action == 'down': x = min(self.size - 1, x + 1) | |
| elif action == 'left': y = max(0, y - 1) | |
| elif action == 'right': y = min(self.size - 1, y + 1) | |
| self.state = (x, y) | |
| if self.state in self.holes: | |
| return self.state, -50, True | |
| elif self.state == self.goal: | |
| return self.state, 50, True | |
| elif self.steps >= self.max_steps: | |
| return self.state, -10, True # episode timeout | |
| else: | |
| return self.state, -1, False | |