Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
terminal_output.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <iostream>
6#include <memory>
7#include <optional>
8#include <sstream>
9#include <string>
10#include <unordered_map>
11
12namespace terminalout {
13
16
17public:
18 PlayerReporter(const game::PlayerSpec &player_spec);
19
20 std::string PlayerTypeStr();
21 std::string EvaluatorTypeStr();
22 std::string SearchDepthStr();
23 std::string ZobristKeySizeStr();
24 std::string SummaryStr();
25
26private:
27 static const std::unordered_map<game::EvaluatorType, std::string>
29 static const std::unordered_map<game::EvaluatorType, std::string> evaluator_names_;
30 static const std::unordered_map<game::ZobristKeyType, std::string> key_type_strings_;
31};
32
34public:
35 std::string MostRecentMoveStr(const std::vector<gameboard::ExecutedMove> &move_log);
36};
37
39
40 // ANSI color codes
41 static const std::string RED_TEXT_WHITE_BG;
42 static const std::string BLACK_TEXT_WHITE_BG;
43 static const std::string RESET_FORMAT;
44
45 static const unordered_map<gameboard::PieceColor, std::string> disp_format_;
46 static const unordered_map<gameboard::PieceColor, std::string> piece_color_to_code_;
47 static const unordered_map<gameboard::PieceType, std::string> piece_type_to_code_;
48
49public:
50 const std::string EncodeGamePiece(const gameboard::GamePiece &game_piece);
51};
52
55
56public:
57 std::string EncodeBoardMap(const gameboard::BoardMap_t &board_map);
58};
59
65
66public:
68 const game::PlayerSpec &player_spec_red,
69 const game::PlayerSpec &player_spec_black
70 );
71
72 void ReportGameInfo(const game::GameStatus &game_status);
73
74private:
75 static const unordered_map<gameboard::PieceColor, std::string> disp_team_name_;
76 static const unordered_map<game::GameState, std::string> game_result_str_;
77 void ClearScreen();
78 void DisplayIfInCheck(const game::GameStatus &game_status);
79 void DisplayInfoNeededEveryMove(const game::GameStatus &game_status);
80 void DisplayInfoNeededMidGame(const game::GameStatus &game_status);
81 void DisplayInfoNeededEndGame(const game::GameStatus &game_status);
82
83};
84
85} // namespace terminalout
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_
static const std::unordered_map< game::EvaluatorType, std::string > evaluator_names_
static const std::unordered_map< game::EvaluatorType, std::string > evaluator_to_player_type_
const game::PlayerSpec & player_spec_
void ReportGameInfo(const game::GameStatus &game_status)
void DisplayInfoNeededEveryMove(const game::GameStatus &game_status)
static const unordered_map< game::GameState, std::string > game_result_str_
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)
void DisplayInfoNeededEndGame(const game::GameStatus &game_status)
array< array< GamePiece, kNumFiles >, kNumRanks > BoardMap_t
2-D array of gameboard::GamePiece objects.
A Xiangqi game piece described by its gameboard::PieceType and its gameboard::PieceColor.
Definition: game_piece.hpp:42