執行參數 - LanKuDot/MLGame GitHub Wiki

以下介紹 MLGame 可用的執行參數。

功能參數

--version

印出 MLGame 的版本。如果是指定在遊戲名之後,如 python MLGame.py arkanoid --version,則會印出該遊戲的版本。

-h/--help

印出幫助說明。如果是指定在遊戲名稱之後,如 python MLGame.py arkanoid -h,則會印出該遊戲的幫助說明。

-l/--list

列出 games 資料夾中可以執行的遊戲與遊戲版本。

執行參數

-f FPS/--fps FPS

指定遊戲更新的間隔時間,預設為 30。

要注意的是實際執行的 FPS 會比指定的值還要低。在 MLGame 中會將這個值做倒數,取得遊戲更新的間隔時間,所以每一影格的執行時間實際是「遊戲更新時間 + 間隔時間」,例如:30 FPS 來說,執行間隔約為 0.033 秒,如果遊戲更新需要花 0.005 秒,則一個影格的實際時間是 0.038 秒,約為 26 FPS。在機器學習模式中,機器學習端在收到場景資訊後,要在這個間隔時間內傳出指令。

-m/--manual-mode

以手動模式執行遊戲。

在手動模式下,遊戲類別必須提供 get_keyboard_command() 函式來幫助偵測鍵盤按鍵,並回傳指令,詳見遊戲與 MLPlay 類別

-r/--record

紀錄遊戲過程。在每輪遊戲結束後,會產生紀錄檔並儲存到該遊戲的 log 資料夾裡。詳細的紀錄檔格式請見遊戲紀錄檔

-1/--one-shot

在一輪遊戲結束時直接結束 MLGame。

-i SCRIPT/--input-script SCRIPT

指定機器學習模式中要使用的玩家程式檔名。如果要指定複數個程式,則連續使用這個 flag。玩家程式中必須要有 MLPlay 類別,詳見遊戲與 MLPlay 類別

指定的程式檔案必須存在於該遊戲的 ml 資料夾中。例如:python MLGame.py -i ml_play_template.py arkanoid EASY 1,則在 games/arkanoid/ml/ 的資料夾裡必須要有 ml_play_template.py 這個檔案。

指定的檔案與對應的機器學習端詳見機器學習模式

--input-module MODULE

指定機器學習模式中要使用的玩家程式模組。如果要指定複數個模組,則連續只用這個 flag。該模組中必須要有 MLPlay 類別。

這個 flag 與 --input-script 類似,只是指定的是絕對模組路徑,也就是用在 import 中的模組路徑。路徑起始點在 MLGame.py 所在的資料夾。例如想要使用 games/arkanoid/ml/ml_play_template.py 可以指定 python MLGame.py --input-module games.arkanoid.ml.ml_play_template arkanoid EASY 1