Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
game::Game Class Reference

#include <game.hpp>

Collaboration diagram for game::Game:
Collaboration graph

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< SpaceInfoProviderBasegame_board_
 
std::unordered_map< gameboard::PieceColor, PlayerSpecplayer_specs_
 
std::unordered_map< gameboard::PieceColor, std::unique_ptr< MoveEvaluatorBase > > move_evaluators_
 
GameState game_state_
 
std::shared_ptr< GameReporterInterfacegame_reporter_
 
gameboard::PieceColor whose_turn_
 
std::vector< gameboard::ExecutedMovemove_log_
 
bool report_during_game_
 
std::string game_id_
 
std::atomic_bool stop_requested_
 
std::optional< int > stop_signal_received_
 

Detailed Description

Definition at line 20 of file game.hpp.

Constructor & Destructor Documentation

◆ Game()

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 
)

Definition at line 12 of file game.cpp.

Member Function Documentation

◆ ChangeWhoseTurn()

void game::Game::ChangeWhoseTurn ( )
private

Definition at line 33 of file game.cpp.

◆ GenerateGameID()

std::string game::Game::GenerateGameID ( )
private

Definition at line 43 of file game.cpp.

◆ GenerateGameSummary()

GameSummary game::Game::GenerateGameSummary ( )
private

Definition at line 80 of file game.cpp.

◆ GetValidMove()

gameboard::Move game::Game::GetValidMove ( const gameboard::MoveCollection available_moves)
private

Definition at line 57 of file game.cpp.

◆ Play()

GameSummary game::Game::Play ( )

Definition at line 110 of file game.cpp.

◆ PlayerTurn()

void game::Game::PlayerTurn ( const gameboard::MoveCollection available_moves)
private

Definition at line 74 of file game.cpp.

◆ RequestStop()

void game::Game::RequestStop ( int  signal)

Definition at line 103 of file game.cpp.

◆ SetWinner()

void game::Game::SetWinner ( gameboard::PieceColor  color)
private

Definition at line 35 of file game.cpp.

◆ stop_signal_received()

std::optional< int > game::Game::stop_signal_received ( )

Definition at line 108 of file game.cpp.

Member Data Documentation

◆ game_board_

std::shared_ptr<SpaceInfoProviderBase> game::Game::game_board_
private

Definition at line 21 of file game.hpp.

◆ game_id_

std::string game::Game::game_id_
private

Definition at line 30 of file game.hpp.

◆ game_reporter_

std::shared_ptr<GameReporterInterface> game::Game::game_reporter_
private

Definition at line 26 of file game.hpp.

◆ game_state_

GameState game::Game::game_state_
private

Definition at line 25 of file game.hpp.

◆ move_evaluators_

std::unordered_map<gameboard::PieceColor, std::unique_ptr<MoveEvaluatorBase> > game::Game::move_evaluators_
private

Definition at line 24 of file game.hpp.

◆ move_log_

std::vector<gameboard::ExecutedMove> game::Game::move_log_
private

Definition at line 28 of file game.hpp.

◆ player_specs_

std::unordered_map<gameboard::PieceColor, PlayerSpec> game::Game::player_specs_
private

Definition at line 22 of file game.hpp.

◆ report_during_game_

bool game::Game::report_during_game_
private

Definition at line 29 of file game.hpp.

◆ stop_requested_

std::atomic_bool game::Game::stop_requested_
private

Definition at line 31 of file game.hpp.

◆ stop_signal_received_

std::optional<int> game::Game::stop_signal_received_
private

Definition at line 32 of file game.hpp.

◆ whose_turn_

gameboard::PieceColor game::Game::whose_turn_
private

Definition at line 27 of file game.hpp.


The documentation for this class was generated from the following files: