発見もできるエージェント - aharalabMeiji/fireplaceAharaLab GitHub Wiki
まずエージェントクラスによるエージェントのつくり方でエージェントが作れているものとして、説明を始めます。
エージェントのクラスの__init__
関数(コンストラクタ)に変数を一つ増やします。
def __init__(self, myName: str, myFunction, myOption = [], myClass: CardClass = CardClass.HUNTER, rating =1000 , choiceStrategy = None):
super().__init__(myName, myFunction, myOption, myClass, rating, choiceStrategy = choiceStrategy )
こうしておくと、'choiceStrategy'に何か設定した時にだけ、発見や選択に対応をするようになります。エージェントクラスの中に
def AdorableCatChoice(self, choiceCards):
# choose one from choiceCards
print("%s choose one"%(self.name))
return choiceCards[0]
のようなメソッドを追加します。choiceCards
というのが、発見や選択の対象となるハンドのカードということで、この中から1枚のカードを選んでreturn
するような関数を作ってください。ここでは一番左のカードを選んでいます。
選択を有効にしてエージェントでプレイするには、start.py
のほうで、
from agent_AdorableCat import AdorableCatAgent
AdorableCat=AdorableCatAgent("AdorableCat", AdorableCatAgent.AdorableCatAI, choiceStrategy=AdorableCatAgent.AdorableCatChoice)
のように、オプションとしてメソッド名を追加すれば大丈夫です。以上です。
参考までに、agent_Standard.py
に入っている人間エージェント(Human
)には選択のメソッドが作ってあります。参考にしてください。