2Classes for building Player objects.
5from typing
import Callable, Any, Dict, Tuple
8from xiangqi_bindings
import (
10 MinimaxMoveEvaluator32,
11 MinimaxMoveEvaluator64,
12 MinimaxMoveEvaluator128,
13 MinimaxMoveEvaluator32Dual,
14 MinimaxMoveEvaluator64Dual,
15 MinimaxMoveEvaluator128Dual,
31 Builds a Player object of specific color and GameBoard.
36 player_input: PlayerInput,
38 game_board: GameBoard,
48 RandomMoveEvaluator: {
49 "evaluating_player": self.
_color,
52 MinimaxMoveEvaluator32: {
53 "evaluating_player": self.
_color,
57 MinimaxMoveEvaluator64: {
58 "evaluating_player": self.
_color,
62 MinimaxMoveEvaluator128: {
63 "evaluating_player": self.
_color,
67 MinimaxMoveEvaluator32Dual: {
68 "evaluating_player": self.
_color,
72 MinimaxMoveEvaluator64Dual: {
73 "evaluating_player": self.
_color,
77 MinimaxMoveEvaluator128Dual: {
78 "evaluating_player": self.
_color,
86 MinimaxMoveEvaluator32,
87 MinimaxMoveEvaluator64,
88 MinimaxMoveEvaluator128,
89 MinimaxMoveEvaluator32Dual,
90 MinimaxMoveEvaluator64Dual,
91 MinimaxMoveEvaluator128Dual,
93 dispatch_table[constructor][
101 (EvaluatorType.RANDOM,
None,
None): RandomMoveEvaluator,
102 (EvaluatorType.MINIMAX, 32, 1): MinimaxMoveEvaluator32,
103 (EvaluatorType.MINIMAX, 64, 1): MinimaxMoveEvaluator64,
104 (EvaluatorType.MINIMAX, 128, 1): MinimaxMoveEvaluator128,
105 (EvaluatorType.MINIMAX, 32, 2): MinimaxMoveEvaluator32Dual,
106 (EvaluatorType.MINIMAX, 64, 2): MinimaxMoveEvaluator64Dual,
107 (EvaluatorType.MINIMAX, 128, 2): MinimaxMoveEvaluator128Dual,
126 move_evaluator = player_constructor(**constructor_kwargs)
132 move_evaluator=move_evaluator,
148 Builds two Player objects for a GameBoard based on XiangqiGameCommand.
152 self, xiangqi_command: XiangqiGameCommand, game_board: GameBoard
159 color=PieceColor.kRed,
160 player_input=self.
_command.red_player_input,
165 color=PieceColor.kBlk,
166 player_input=self.
_command.black_player_input,
170 return {PieceColor.kRed: red_player, PieceColor.kBlk: black_player}
Builds two Player objects for a GameBoard based on XiangqiGameCommand.
def __init__(self, XiangqiGameCommand xiangqi_command, GameBoard game_board)
Builds a Player object of specific color and GameBoard.
def _build_ai_player(self)
def __init__(self, PlayerInput player_input, PieceColor color, GameBoard game_board)
def _build_human_player(self)
dict[Callable, Any] _move_evaluator_args(self)
dict[PlayerType, Any] _player_dispatch(self)
Dict[Tuple, Callable] evaluator_constructor_dispatch(self)
Proposed moves selected using an implementation of core MoveEvaluator.
Uses terminal UI to propose moves.
Implementations of Player, and Exceptions for notifying specific Player types of illegal proposed Mov...