コード例 #1
0
ファイル: snake_env.py プロジェクト: michaelnutt2/RLSnakeGame
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  self.n_snakes,
                                  self.n_foods,
                                  random_init=self.random_init)
     self.last_obs = self.controller.get_snake_info()
     self.last_grid = self.controller.grid.grid.copy()
     return self.last_obs
コード例 #2
0
ファイル: snake_env.py プロジェクト: CarlBeek/Gym-Snake
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  random_init=self.random_init)
     self.last_obs = self.controller.grid.grid
     return self._get_obs()
コード例 #3
0
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  self.n_snakes,
                                  self.n_foods,
                                  random_init=self.random_init)
     self.last_obs = self.controller.grid.grid.copy()
     obs = [
         tuple(self.controller.snakes[0].head)
         if self.controller.snakes and self.controller.snakes[0] else None,
         self.controller.grid.foodLocations[0]
     ]
     #return self.last_obs
     return tuple(
         self.controller.generateObservationTuple(
             int(self.controller.snakes[0].direction)))
コード例 #4
0
    def reset(self):
        self.controller = Controller(self.grid_size, self.unit_size, self.unit_gap, self.snake_size, self.n_snakes, self.n_foods, random_init=self.random_init)

        #self.last_obs = self.controller.grid.grid
        lw = LocalView(self.controller.grid)
        self.last_obs = lw.get(self.controller.snakes[0].head)
        # print("RESET")
        # print(np.expand_dims(self.last_obs, -1).shape)
        self.last_obs = np.asarray(np.expand_dims(self.last_obs, -1))
        return self.last_obs
コード例 #5
0
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  self.n_snakes,
                                  self.n_foods,
                                  random_init=self.random_init)
     self.last_obs = self.controller.grid.grid.copy()
     coord_obs = self.to_coord(self.last_obs)  # Erco
     return coord_obs  # Erco
コード例 #6
0
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  self.n_snakes,
                                  self.n_foods,
                                  random_init=self.random_init,
                                  wall=self.wall)
     self.last_obs = self.controller.grid.grid
     return self.last_obs
コード例 #7
0
ファイル: snake_env.py プロジェクト: michaelnutt2/RLSnakeGame
class SnakeEnv(gym.Env):
    metadata = {'render.modes': ['human']}

    def __init__(self,
                 grid_size=[15, 15],
                 unit_size=10,
                 unit_gap=1,
                 snake_size=3,
                 n_snakes=1,
                 n_foods=1,
                 random_init=True):
        self.grid_size = grid_size
        self.unit_size = unit_size
        self.unit_gap = unit_gap
        self.snake_size = snake_size
        self.n_snakes = n_snakes
        self.n_foods = n_foods
        self.viewer = None
        self.action_space = Discrete(4)
        self.random_init = random_init
        self.last_obs = None
        self.last_grid = None

    def step(self, action):
        self.last_obs, rewards, done, info = self.controller.step(action)
        self.last_grid = self.controller.grid.grid.copy()
        return self.last_obs, rewards, done, info

    def reset(self):
        self.controller = Controller(self.grid_size,
                                     self.unit_size,
                                     self.unit_gap,
                                     self.snake_size,
                                     self.n_snakes,
                                     self.n_foods,
                                     random_init=self.random_init)
        self.last_obs = self.controller.get_snake_info()
        self.last_grid = self.controller.grid.grid.copy()
        return self.last_obs

    def render(self, mode='human', close=False, frame_speed=.1):
        if self.viewer is None:
            self.fig = plt.figure()
            self.viewer = self.fig.add_subplot(111)
            plt.ion()
            self.fig.show()
        else:
            self.viewer.clear()
            self.viewer.imshow(self.last_grid)
            plt.pause(frame_speed)
        self.fig.canvas.draw()

    def seed(self, x):
        pass
コード例 #8
0
 def reset(self):
     self.controller = Controller(self.grid_size,
                                  self.unit_size,
                                  self.unit_gap,
                                  self.snake_size,
                                  self.n_snakes,
                                  self.n_foods,
                                  random_init=self.random_init,
                                  start_coord=self.start_coord,
                                  food_pos=self.food_pos)
     self.last_obs = self.controller.grid.grid.copy()
     return self.last_obs
コード例 #9
0
class SnakeEnv(gym.Env):
    metadata = {'render.modes': ['human']}

    def __init__(self,
                 grid_size=[30, 30],
                 unit_size=10,
                 unit_gap=1,
                 snake_size=2,
                 n_snakes=1,
                 n_foods=1,
                 random_init=True):
        self.grid_size = grid_size
        self.unit_size = unit_size
        self.unit_gap = unit_gap
        self.snake_size = snake_size
        self.n_snakes = n_snakes
        self.n_foods = n_foods
        self.viewer = None
        self.action_space = Discrete(4)
        self.random_init = random_init
        #Defined observation space
        #self.observation_space = spaces.Box(low=np.array([0]*11), high=np.array([1]*11), dtype=np.bool)
        self.observation_space = spaces.Tuple(
            (spaces.Discrete(2), spaces.Discrete(2), spaces.Discrete(2),
             spaces.Discrete(2), spaces.Discrete(2), spaces.Discrete(2),
             spaces.Discrete(2), spaces.Discrete(2), spaces.Discrete(2),
             spaces.Discrete(2), spaces.Discrete(2)))

    def step(self, action):
        #self.last_obs, rewards, done, info = self.controller.step(action)
        last_obs, rewards, done, info = self.controller.step(action)
        self.last_obs = self.controller.grid.grid.copy()
        #return self.last_obs, rewards, done, info
        return last_obs, rewards, done, info

    def reset(self):
        self.controller = Controller(self.grid_size,
                                     self.unit_size,
                                     self.unit_gap,
                                     self.snake_size,
                                     self.n_snakes,
                                     self.n_foods,
                                     random_init=self.random_init)
        self.last_obs = self.controller.grid.grid.copy()
        obs = [
            tuple(self.controller.snakes[0].head)
            if self.controller.snakes and self.controller.snakes[0] else None,
            self.controller.grid.foodLocations[0]
        ]
        #return self.last_obs
        return tuple(
            self.controller.generateObservationTuple(
                int(self.controller.snakes[0].direction)))

    def render(self, mode='human', close=False, frame_speed=.1):
        if self.viewer is None:
            self.fig = plt.figure()
            self.viewer = self.fig.add_subplot(111)
            plt.ion()
            self.fig.show()
        else:
            self.viewer.clear()
            self.viewer.imshow(self.last_obs)
            plt.pause(frame_speed)
        self.fig.canvas.draw()

    def seed(self, x):
        pass