一、在自己的anaconda环境中找到gym包目录下env文件夹
C:\Users\admin\anaconda3\envs\RL\Lib\site-packages\gym\env
二、在env目录下创建user文件夹
C:\Users\admin\anaconda3\envs\RL\Lib\site-packages\gym\env\user
三、在user目录下创建两个文件
(1) __ init __.py
(2) my_env_v1.py
四、在my_env_v1.py中编写环境
import math
from typing import Optional, Union
import numpy as np
import gym
from gym import logger, spaces
from gym.envs.classic_control import utils
from gym.error import DependencyNotInstalled
from gym.utils.renderer import Renderer
class My_Env():
def __init__():
'''
初始化函数
配置环境参数
'''
def step():
'''
交互函数
相当于物理引擎
输入:动作
返回:下一步状态,即时奖励,终止状态标志,调试项
'''
def reset():
'''
初始化函数
环境状态随机初始化
'''
def render():
'''
渲染函数
展示动画场景
'''
def close():
'''
关闭图形界面函数
终止动画的显示
'''
五、在**__ init __.py **中导入环境
from gym.envs.user.my_env_v1 import My_Env
六、在env文件夹中的**__ init __.py **中注册环境
在文件最后添加代码
register(
id='MyWorld-v1',
entry_point='gym.envs.user.my_env_v1:My_Env',
max_episode_steps=1000,
)
七、环境搭建完成后的测试
import gym
import random
import numpy as np
env = gym.make('MyWorld-v1') #导入环境
env.reset() #初始化
while True:
#a = random.choice((0,1)) #随机生成动作
#s,r,done,_ = env.step(a) #执行动作
env.render() #循环渲染
#if done == True:
# env.reset()