発見もできるエージェント - 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)には選択のメソッドが作ってあります。参考にしてください。