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