Spaces:
Runtime error
Runtime error
File size: 1,091 Bytes
bbf97b5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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
|