强化学习 车杆游戏

网上搜寻到的代码,亲测比较好用,分享如下。

import gym
import time

env = gym.make('CartPole-v0') # 获得游戏环境
observation = env.reset() # 复位游戏环境,新一局游戏开始
print ('新一局游戏 初始观测 = {}'.format(observation))
for t in range(200):
    env.render()
    action = env.action_space.sample() # 随机选择动作
    print ('{}: 动作 = {}'.format(t, action))
    observation, reward, done, info = env.step(action) # 执行行为
    print ('{}: 观测 = {}, 本步得分 = {}, 结束指示 = {}, 其他信息 = {}'.format(
            t, observation, reward, done, info))
    if done:
        break
    time.sleep(1)#可加可不加,有的话就可以看到图

env.close()

以下给出多个回合的代码:

import gym
env = gym.make('CartPole-v0')
n_episode = 20
for i_episode in range(n_episode):
    observation = env.reset()
    episode_reward = 0
    while True:
        # env.render()
        action = env.action_space.sample() # 随机选
        observation, reward, done, _ = env.step(action)
        episode_reward += reward
        state = observation
        if done:
            break
    print ('第{}局得分 = {}'.format(i_episode, episode_reward))
env.close()

这次的多回合游戏并没有加入绘图,需要绘图的话可以将  env.render() 加入。

猜你喜欢

转载自www.cnblogs.com/devilmaycry812839668/p/9900674.html