start.py の見方。 - aharalabMeiji/fireplaceAharaLab GitHub Wiki
メイン関数
def main():
カード情報を読み込むところ
from fireplace import cards
cards.db.initialize()
典型的なエージェントがプリセットされています。
-
人がキーボード入力できる(”Human"というプレーヤー名に、人プレーヤーを張り付けています。)
Human=HumanAgent("Human1",HumanAgent.HumanInput,myClass=CardClass.HUNTER )
-
着手できるものの中から完全にランダムに選択する
Random=StandardAgent("Random",StandardAgent.StandardRandom, myClass=CardClass.HUNTER)
-
典型的なパラメータの重みつき和で評価するエージェント(myClassを指定しないとHunterクラスになる。)
Vector2=StandardVectorAgent("Vector2",StandardVectorAgent.StandardStep1\ ,myOption=[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2,7,9,5,0,2,8] )
-
MCTS によるターン内探索
from agent_Miyaryo import MiyaryoAgent Miyaryo=MiyaryoAgent("Miyaryo",MiyaryoAgent.MiyaryoAI)
エージェントはマリガンチョイスをプログラミングすることができる。
Human1=HumanAgent("Human1",HumanAgent.HumanInput,myClass=CardClass.MAGE,
mulliganStrategy=HumanAgent.HumanInputMulligan)
(これは一定のフォーマットを持つHumanAgent.HumanInputMulliganという関数を準備することが必要。詳細はマリガンもできるエージェントを参照のこと。)
play_set_of_games
ゲームを呼び出す関数第1、第2引数:エージェント
第3、第4引数:それぞれのエージェントがもつデッキ(空を指定すると、ランダムなデッキがセットされる。)
gameNumber:プレーする回数
debugLog:これをTrueにすると、プレーの内容をコンソール出力する。
たとえば、Vector1
対 Vector2
の対戦で、デッキはランダム、15回、プレー内容表示、を実行するには次のようにする。
a,b,c = play_set_of_games(Vector1, Vector2, deck1=[], deck2=[], gameNumber=15, debugLog=True)
さらなるオプション\
HEROHPOPTION=30(初期のヒーローの体力)
P1MAXMANA=0, P2MAXMANA=0:(初期マナ-1)
P1HAND=3, P2HAN=3:初期枚数(後手に配られる+1枚はカウントしない)
を変えることもできる。たとえば
a,b,c = play_set_of_games(Human1, Human2, deck1=[], deck2=[], gameNumber=1, debugLog=True, P1MAXMANA=10, P2MAXMANA=10)
返り値は3つで、第1エージェントの勝ち数、第2エージェントの勝ち数、引き分け数が代入される。