gym 自定义游戏环境

gym 自定义游戏环境

需要继承gym.Env类,实现reset(self)、step(self, action)函数

import gym
from typing import List, Optional, Tuple, Any


class ToyEnv(gym.Env):
    def __init__(self):
        super(ToyEnv, self).__init__()
        self.observation_space = gym.spaces.Discrete(n=5)   # 定义状态空间为discrete类型 范围0~4
        self.action_space = gym.spaces.Discrete(n=3)        # 定义动作空间为discrete类型 范围0~2
        self.step_index = 0

    def reset(self):    # 初始化状态,计数器置零
        self.step_index = 0
        return self.step_index

    def step(self, action):
        is_done = self.step_index == 10     # 计数器到10,游戏结束
        if is_done:     # 游戏结束
            # 返回(s,r,done,info)
            return self.step_index % self.observation_space.n, \
                   0.0, is_done, {}

        # 游戏未结束 返回(s_,r,done,info)
        self.step_index += 1
        return self.step_index % self.observation_space.n, \
               float(action), False, {}

# 使用
env = ToyEnv()
s = env.reset()
print("env.reset() -> %s" % s)
s = env.step(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值