# Heroic 組牌及 Selfplay ## 組牌 主要改environment_wrappers底下的heroic_environment_wrappers.py檔裡面的內容。若是單純產生對戰資料,則改HeroicSelfplayEnvironmentWrapper這個class。 可用卡牌: ![](https://hackmd.io/_uploads/BytgZK6M6.png) 裡面有24張。 假設現在要改成指定16張可用,則: ![](https://hackmd.io/_uploads/HJEOWtTG6.png) 而預設規則是在一個牌組裡面每種牌可以重複一次,即兩張。見HeroicSelfplayEnvironmentWrapper的reset部分: ![](https://hackmd.io/_uploads/B1dEztpMp.png) 這邊指定一副牌可以帶8張,而每張牌最多出現兩次。將while loop那邊改成從2改成1即可組出不重複。 另外,若想固定牌組,也可像下面這樣: ![](https://hackmd.io/_uploads/ByhOXFTza.png) 註解那邊即直接指定我方即對方牌組內容。 ## Selfplay 若想改對戰過程,則看selfplay函式。位置在problems/heroic/ppo_solver/vglf_trainer_mix.py ## 執行 若要直接執行selfplay產生對戰資料,我有寫好一個run_heroic_selfplay.py。執行它會直接launch vglf_trainer_mix.py裡的selfplay函式。也可以在那邊修改一些parameter。 ![](https://hackmd.io/_uploads/SkgesBKaz6.png)