可视化训练环境
强化学习基本上用来学习的开源环境比较多,
新手刚入门可以用gym就够了
gym是基于pyglet搭建的,但是做不出比较高大上的效果,而且很多地方不如pygame
pygame
Pygame是一组跨平台的Python模块, 用于创建视频游戏
安装直接conda 里pip install pygame即可
搭建流程(静态部分)
先说一下常用的方法,基本上掌握了就可以组一个完善的小游戏
首先在项目中导入pygame
import pygame
from pygame.locals import *
注:和pyglet有些许不同,这里导入即初始化游戏,刷新画面(render)操作需要套在主循环中并且抓住event,不然会卡住
然后做一些初始化
#注释掉的部分完整版中会放开,这里只介绍基础搭建
class Myenv():
def __init__(self) -> None:
#self.gen = Generator()
#self.player = Player()
#初始化游戏
pygame.init()
#设定游戏屏幕大小,500宽,450高,这个自己定义
self.screen = pygame.display.set_mode((500, 450))
#这个是小框框标题,可以不设
pygame.display.set_caption("Kousei's game")
#这个是自己导入图片,插到游戏中显示
self.line = pygame.image.load(r'E:\RLpaz\data\line.png')
self.agent = pygame.image.load(r'E:\RLpaz\data\agent.png')
#把图片压缩到指定大小
self.line = pygame.transform.scale(self.line, (图片宽, 图片高))
self.agent = pygame.transform.scale(self.agent, (图片宽, 图片高))
#这个fcclock可以限制游戏刷新率,如果不限制可以不设
self.fcclock = pygame.time.Clock()
#设定刷新fps
self.fcclock.tick(100)
#self.record = []
#self.pre_render(400)
接着环境初始化就弄好了,接着我们需要有个刷新功能,每一帧去把图片刷到游戏里
def step(self,auto = False,a=1):
#done是强化学习用来判断回合是否结束
#done = False
#背景填充白色,如果你拿图片当背景可以不用设
self.screen