Xiangiqgame
AI engine for Xiangqi
|
#include <game.hpp>
Public Member Functions | |
Game (std::shared_ptr< SpaceInfoProviderBase > game_board, std::unordered_map< gameboard::PieceColor, PlayerSpec > player_specs, std::unordered_map< gameboard::PieceColor, std::unique_ptr< MoveEvaluatorBase > > move_evaluators, std::shared_ptr< GameReporterInterface > game_reporter, bool report_during_game=true, gameboard::PieceColor whose_turn=gameboard::PieceColor::kRed) | |
GameSummary | Play () |
void | RequestStop (int signal) |
std::optional< int > | stop_signal_received () |
Private Member Functions | |
std::string | GenerateGameID () |
gameboard::Move | GetValidMove (const gameboard::MoveCollection &available_moves) |
void | PlayerTurn (const gameboard::MoveCollection &available_moves) |
void | ChangeWhoseTurn () |
void | SetWinner (gameboard::PieceColor color) |
GameSummary | GenerateGameSummary () |
Private Attributes | |
std::shared_ptr< SpaceInfoProviderBase > | game_board_ |
std::unordered_map< gameboard::PieceColor, PlayerSpec > | player_specs_ |
std::unordered_map< gameboard::PieceColor, std::unique_ptr< MoveEvaluatorBase > > | move_evaluators_ |
GameState | game_state_ |
std::shared_ptr< GameReporterInterface > | game_reporter_ |
gameboard::PieceColor | whose_turn_ |
std::vector< gameboard::ExecutedMove > | move_log_ |
bool | report_during_game_ |
std::string | game_id_ |
std::atomic_bool | stop_requested_ |
std::optional< int > | stop_signal_received_ |
game::Game::Game | ( | std::shared_ptr< SpaceInfoProviderBase > | game_board, |
std::unordered_map< gameboard::PieceColor, PlayerSpec > | player_specs, | ||
std::unordered_map< gameboard::PieceColor, std::unique_ptr< MoveEvaluatorBase > > | move_evaluators, | ||
std::shared_ptr< GameReporterInterface > | game_reporter, | ||
bool | report_during_game = true , |
||
gameboard::PieceColor | whose_turn = gameboard::PieceColor::kRed |
||
) |
|
private |
|
private |
GameSummary game::Game::Play | ( | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |