
Pygame Learning Environment (PLE) เป็นสภาพแวดล้อมการเรียนรู้เลียนแบบอินเทอร์เฟซสภาพแวดล้อมการเรียนรู้ของอาร์เคดทำให้สามารถเริ่มต้นการเรียนรู้ได้อย่างรวดเร็วใน Python เป้าหมายของ PLE คือการอนุญาตให้ผู้ปฏิบัติงานมุ่งเน้นการออกแบบแบบจำลองและการทดลองแทนการออกแบบสภาพแวดล้อม
Ple หวังว่าจะสร้างห้องสมุดเกมที่กว้างขวางในที่สุด
รับ PRS สำหรับเกม
เอกสารสำหรับโครงการสามารถพบได้ที่นี่ พวกเขาอยู่ในปัจจุบัน WIP
เกมที่มีอยู่สามารถพบได้ในเอกสาร
อินสแตนซ์ PLE ต้องใช้เกมที่เปิดเผยชุดของวิธีการควบคุม หากต้องการดูวิธีการที่ต้องการให้ดูที่ ple/games/base.py
นี่คือตัวอย่างของการนำเข้าปิงปองจากห้องสมุดเกมภายใน PLE:
from ple . games . pong import Pong
game = Pong ()ต่อไปเรากำหนดค่าและเริ่มต้น PLE:
from ple import PLE
p = PLE ( game , fps = 30 , display_screen = True , force_fps = False )
p . init () ตัวเลือกด้านบนแนะนำให้ PLE แสดงหน้าจอเกมด้วย display_screen ในขณะที่อนุญาตให้ pygame เลือกระยะเวลาการหน่วงเวลาที่เหมาะสมระหว่างเฟรมเพื่อให้แน่ใจว่า 30fps ด้วย force_fps
คุณมีอิสระที่จะใช้เอเจนต์ใด ๆ กับ PLE ด้านล่างเราสร้างตัวแทนสมมติและคว้าการกระทำที่ถูกต้อง:
myAgent = MyAgent ( p . getActionSet ())ตอนนี้เราสามารถมีตัวแทนของเราได้ด้วยความช่วยเหลือของ PLE โต้ตอบกับเกมผ่านเฟรมจำนวนหนึ่ง:
nb_frames = 1000
reward = 0.0
for f in range ( nb_frames ):
if p . game_over (): #check if the game is over
p . reset_game ()
obs = p . getScreenRGB ()
action = myAgent . pickAction ( reward , obs )
reward = p . act ( action )เช่นเดียวกับที่เรามีตัวแทนของเราโต้ตอบกับสภาพแวดล้อมเกมของเรา
PLE ต้องการการพึ่งพาต่อไปนี้:
โคลน repo และติดตั้งด้วย pip
git clone https://github.com/ntasfi/PyGame-Learning-Environment.git
cd PyGame-Learning-Environment/
pip install -e . ตั้งค่าต่อไปนี้ในรหัสของคุณก่อนการใช้งาน:
os . putenv ( 'SDL_VIDEODRIVER' , 'fbcon' )
os . environ [ "SDL_VIDEODRIVER" ] = "dummy"ขอบคุณ @wooridle
cd ลงในไดเรกทอรี PyGame-Learning-Environment และเรียกใช้สิ่งต่อไปนี้:
git pullหาก PLE ช่วยงานวิจัยของคุณโปรดอ้างอิงในสิ่งพิมพ์ของคุณ ตัวอย่างรายการ bibtex:
@misc{tasfi2016PLE,
author = {Tasfi, Norman},
title = {PyGame Learning Environment},
year = {2016},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/ntasfi/PyGame-Learning-Environment}}
}