11const std::unordered_map<game::EvaluatorType, std::string>
18const std::unordered_map<game::EvaluatorType, std::string>
25const std::unordered_map<game::ZobristKeyType, std::string>
33 : player_spec_{player_spec} {}
74 const std::vector<gameboard::ExecutedMove> &move_log
77 if (move_log.size() == 0) {
81 auto algebraic_start = algebraic_move.start();
82 auto algebraic_end = algebraic_move.end();
83 result = algebraic_start.value() +
", " + algebraic_end.value();
97const unordered_map<gameboard::PieceColor, std::string>
103const unordered_map<gameboard::PieceType, std::string>
124 std::ostringstream board_output;
126 board_output <<
"\t";
127 for (
char file =
'a'; file <=
'i'; ++file) {
128 board_output <<
" " << file <<
" ";
130 board_output <<
"\n\n\n";
132 for (
size_t row = 0; row < board_map.size(); ++row) {
133 board_output <<
" " << 10 - row <<
"\t";
135 for (
const auto &piece : board_map[row]) {
139 board_output <<
"\n\n";
142 return board_output.str();
152 , board_map_encoder_{} {}
154const unordered_map<gameboard::PieceColor, std::string>
160const unordered_map<game::GameState, std::string>
189 <<
"Move count: " << std::to_string(game_status.
move_log.size()) <<
"\n"
195 std::cout <<
"Most recent move: "
static const AlgebraicMove Create(const std::vector< AlgebraicBoardSpace > &algebraic_board_spaces)
GamePieceEncoder game_piece_encoder_
std::string EncodeBoardMap(const gameboard::BoardMap_t &board_map)
static const std::string RESET_FORMAT
static const std::string BLACK_TEXT_WHITE_BG
static const std::string RED_TEXT_WHITE_BG
const std::string EncodeGamePiece(const gameboard::GamePiece &game_piece)
static const unordered_map< gameboard::PieceColor, std::string > piece_color_to_code_
static const unordered_map< gameboard::PieceType, std::string > piece_type_to_code_
static const unordered_map< gameboard::PieceColor, std::string > disp_format_
std::string MostRecentMoveStr(const std::vector< gameboard::ExecutedMove > &move_log)
static const std::unordered_map< game::ZobristKeyType, std::string > key_type_strings_
std::string SearchDepthStr()
std::string EvaluatorTypeStr()
std::string PlayerTypeStr()
static const std::unordered_map< game::EvaluatorType, std::string > evaluator_names_
static const std::unordered_map< game::EvaluatorType, std::string > evaluator_to_player_type_
PlayerReporter(const game::PlayerSpec &player_spec)
const game::PlayerSpec & player_spec_
std::string ZobristKeySizeStr()
void ReportGameInfo(const game::GameStatus &game_status)
void DisplayInfoNeededEveryMove(const game::GameStatus &game_status)
BoardMapEncoder board_map_encoder_
static const unordered_map< game::GameState, std::string > game_result_str_
PlayerReporter black_player_reporter_
static const unordered_map< gameboard::PieceColor, std::string > disp_team_name_
void DisplayInfoNeededMidGame(const game::GameStatus &game_status)
void DisplayIfInCheck(const game::GameStatus &game_status)
PlayerReporter red_player_reporter_
MoveReporter move_reporter_
TerminalGameReporter(const game::PlayerSpec &player_spec_red, const game::PlayerSpec &player_spec_black)
void DisplayInfoNeededEndGame(const game::GameStatus &game_status)
Defines GamePiece and supporting constants and free functions.
PieceColor opponent_of(PieceColor color)
array< array< GamePiece, kNumFiles >, kNumRanks > BoardMap_t
2-D array of gameboard::GamePiece objects.
const gameboard::BoardMap_t & board_map
const std::vector< gameboard::ExecutedMove > & move_log
game::GameState game_state
gameboard::PieceColor whose_turn
EvaluatorType evaluator_type
DepthType minimax_search_depth
size_t zobrist_key_size_bits
A Xiangqi game piece described by its gameboard::PieceType and its gameboard::PieceColor.