---
# System prepended metadata

title: Heroic 組牌及 Selfplay

---

# 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)


