hanabiapp.game.agent.agent

 1from ..game_const import GameConst
 2class Agent():
 3  """
 4  エージェントを表現する抽象クラス.
 5  
 6  ゲームのプレイヤーとして動作するエージェントの基底クラスであり,
 7  すべてのエージェントが共通して持つべきインターフェースを定義する.
 8  
 9  Attributes:
10      game_const (GameConst): ゲームの定数
11      name (str): エージェントの名前
12      player_number (int): エージェントの番号
13      need_hle_convert (bool): HLE形式の変換が必要かどうか
14      game (Game): ゲームのインスタンス(後で設定される)
15      is_cui (bool): CUIモードかどうか
16  """
17  
18  def __init__(self, name, player_number,need_hle_convert=True):
19    """
20    エージェントの初期化.
21    
22    Args:
23        name (str): エージェントの名前
24        player_number (int): エージェントの番号
25        need_hle_convert (bool, optional): HLE形式の変換が必要かどうか(デフォルトはTrue)
26    """
27    
28    self.game_const = GameConst()
29    self.name = name
30    self.player_number = player_number
31    self.need_hle_convert = need_hle_convert
32    #self.game = None # 後からGameクラスから渡される
33
34  def set_game(self, game):
35    """
36    エージェントにゲームインスタンスを設定する.
37    
38    Args:
39        game (Game): ゲームのインスタンス
40    """
41    self.game = game
42    self.is_cui = self.game.is_cui
43  
44  def print_log(self,log):
45    """
46    CUIモードの場合にログを出力する関数.
47    
48    Args:
49        log (str): 出力するログメッセージ
50    """
51    if self.is_cui:
52      print(log)
53    
54  def act(self):
55    """HLEのobservationに基づき,エージェントのアクションを決定するメソッド
56
57    Args:
58      observation(dict): このエージェント視点で分かる観測情報
59
60    Returns:
61      TMP_ACTION(dict): エージェントのアクション
62    
63    Note:
64      * observationの形式について
65      * TMP_ACTIONの形式について
66    """
67    raise NotImplementedError("Not implemented in Abstract Base class")
class Agent:
 3class Agent():
 4  """
 5  エージェントを表現する抽象クラス.
 6  
 7  ゲームのプレイヤーとして動作するエージェントの基底クラスであり,
 8  すべてのエージェントが共通して持つべきインターフェースを定義する.
 9  
10  Attributes:
11      game_const (GameConst): ゲームの定数
12      name (str): エージェントの名前
13      player_number (int): エージェントの番号
14      need_hle_convert (bool): HLE形式の変換が必要かどうか
15      game (Game): ゲームのインスタンス(後で設定される)
16      is_cui (bool): CUIモードかどうか
17  """
18  
19  def __init__(self, name, player_number,need_hle_convert=True):
20    """
21    エージェントの初期化.
22    
23    Args:
24        name (str): エージェントの名前
25        player_number (int): エージェントの番号
26        need_hle_convert (bool, optional): HLE形式の変換が必要かどうか(デフォルトはTrue)
27    """
28    
29    self.game_const = GameConst()
30    self.name = name
31    self.player_number = player_number
32    self.need_hle_convert = need_hle_convert
33    #self.game = None # 後からGameクラスから渡される
34
35  def set_game(self, game):
36    """
37    エージェントにゲームインスタンスを設定する.
38    
39    Args:
40        game (Game): ゲームのインスタンス
41    """
42    self.game = game
43    self.is_cui = self.game.is_cui
44  
45  def print_log(self,log):
46    """
47    CUIモードの場合にログを出力する関数.
48    
49    Args:
50        log (str): 出力するログメッセージ
51    """
52    if self.is_cui:
53      print(log)
54    
55  def act(self):
56    """HLEのobservationに基づき,エージェントのアクションを決定するメソッド
57
58    Args:
59      observation(dict): このエージェント視点で分かる観測情報
60
61    Returns:
62      TMP_ACTION(dict): エージェントのアクション
63    
64    Note:
65      * observationの形式について
66      * TMP_ACTIONの形式について
67    """
68    raise NotImplementedError("Not implemented in Abstract Base class")

エージェントを表現する抽象クラス.

ゲームのプレイヤーとして動作するエージェントの基底クラスであり, すべてのエージェントが共通して持つべきインターフェースを定義する.

Attributes:
  • game_const (GameConst): ゲームの定数
  • name (str): エージェントの名前
  • player_number (int): エージェントの番号
  • need_hle_convert (bool): HLE形式の変換が必要かどうか
  • game (Game): ゲームのインスタンス(後で設定される)
  • is_cui (bool): CUIモードかどうか
Agent(name, player_number, need_hle_convert=True)
19  def __init__(self, name, player_number,need_hle_convert=True):
20    """
21    エージェントの初期化.
22    
23    Args:
24        name (str): エージェントの名前
25        player_number (int): エージェントの番号
26        need_hle_convert (bool, optional): HLE形式の変換が必要かどうか(デフォルトはTrue)
27    """
28    
29    self.game_const = GameConst()
30    self.name = name
31    self.player_number = player_number
32    self.need_hle_convert = need_hle_convert
33    #self.game = None # 後からGameクラスから渡される

エージェントの初期化.

Arguments:
  • name (str): エージェントの名前
  • player_number (int): エージェントの番号
  • need_hle_convert (bool, optional): HLE形式の変換が必要かどうか(デフォルトはTrue)
game_const
name
player_number
need_hle_convert
def set_game(self, game):
35  def set_game(self, game):
36    """
37    エージェントにゲームインスタンスを設定する.
38    
39    Args:
40        game (Game): ゲームのインスタンス
41    """
42    self.game = game
43    self.is_cui = self.game.is_cui

エージェントにゲームインスタンスを設定する.

Arguments:
  • game (Game): ゲームのインスタンス
def print_log(self, log):
45  def print_log(self,log):
46    """
47    CUIモードの場合にログを出力する関数.
48    
49    Args:
50        log (str): 出力するログメッセージ
51    """
52    if self.is_cui:
53      print(log)

CUIモードの場合にログを出力する関数.

Arguments:
  • log (str): 出力するログメッセージ
def act(self):
55  def act(self):
56    """HLEのobservationに基づき,エージェントのアクションを決定するメソッド
57
58    Args:
59      observation(dict): このエージェント視点で分かる観測情報
60
61    Returns:
62      TMP_ACTION(dict): エージェントのアクション
63    
64    Note:
65      * observationの形式について
66      * TMP_ACTIONの形式について
67    """
68    raise NotImplementedError("Not implemented in Abstract Base class")

HLEのobservationに基づき,エージェントのアクションを決定するメソッド

Arguments:
  • observation(dict): このエージェント視点で分かる観測情報
Returns:

TMP_ACTION(dict): エージェントのアクション

Note:
  • observationの形式について
  • TMP_ACTIONの形式について