0

我有一个这样的用matplotlib写的动画程序:

def animate(frame):
    observation = env.render()
    action = RL.choose_action(str(observation)) # TODO
    action = [random.randint(0, 4) for i in range(ROBOT_NUM)] # TO BE DELETE TODO
    env.step(action)
    observation_ = env.render()
    reward = env.reward
    RL.learn(str(observation), action, reward, str(observation_))  # TODO
    for i in range(TARGET_NUM):
        patchs_target[i].center = (env.targets[i].x, env.targets[i].y)
    for i in range(ROBOT_NUM):
        patchs[i].center = (env.robots[i].x, env.robots[i].y)
        patchs_inner[i].center = (env.robots[i].x, env.robots[i].y)
    return patchs + patchs_inner + patchs_target

....

anim = animation.FuncAnimation(fig, animate, init_func=init,frames=1, interval=UPDATE_INTERVAL, blit=True)

我想终止 animation.FuncAnimation语句通过函数animate中的条件. 比如if reward < 10就终止animation.FuncAnimation,但我不知道怎么做。
或者有没有其他方法可以终止animation.FuncAnimation通过判断条件,而不是通过指定动画次数。

2018-02-01 提问
0 个回答

撰写答案

推广链接