Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
SpaceInfoProvider< ConcreteSpaceInfoProvider > Class Template Reference

CRTP interface with methods for obtaining information about gameboard::BoardSpace objects, calculating legal gameboard::Move objects, executing a gameboard::Move, and un-doing a gameboard::ExecutedMove (concrete example = gameboard::GameBoard). More...

#include <space_info_provider_interface.hpp>

Inheritance diagram for SpaceInfoProvider< ConcreteSpaceInfoProvider >:
Inheritance graph
Collaboration diagram for SpaceInfoProvider< ConcreteSpaceInfoProvider >:
Collaboration graph

Public Member Functions

vector< BoardSpaceGetAllSpacesOccupiedBy (PieceColor color)
 
PieceColor GetColor (const BoardSpace &space)
 
PieceType GetType (const BoardSpace &space)
 
MoveCollection CalcFinalMovesOf (PieceColor color)
 
ExecutedMove ExecuteMove (const Move &move)
 
void UndoMove (const ExecutedMove &executed_move)
 
void AttachMoveCallback (function< void(const ExecutedMove &)> callback)
 
bool IsDraw ()
 

Detailed Description

template<typename ConcreteSpaceInfoProvider>
class SpaceInfoProvider< ConcreteSpaceInfoProvider >

CRTP interface with methods for obtaining information about gameboard::BoardSpace objects, calculating legal gameboard::Move objects, executing a gameboard::Move, and un-doing a gameboard::ExecutedMove (concrete example = gameboard::GameBoard).

Definition at line 15 of file space_info_provider_interface.hpp.

Member Function Documentation

◆ AttachMoveCallback()

template<typename ConcreteSpaceInfoProvider >
void SpaceInfoProvider< ConcreteSpaceInfoProvider >::AttachMoveCallback ( function< void(const ExecutedMove &)>  callback)
inline

Definition at line 44 of file space_info_provider_interface.hpp.

◆ CalcFinalMovesOf()

template<typename ConcreteSpaceInfoProvider >
MoveCollection SpaceInfoProvider< ConcreteSpaceInfoProvider >::CalcFinalMovesOf ( PieceColor  color)
inline

Definition at line 30 of file space_info_provider_interface.hpp.

◆ ExecuteMove()

template<typename ConcreteSpaceInfoProvider >
ExecutedMove SpaceInfoProvider< ConcreteSpaceInfoProvider >::ExecuteMove ( const Move move)
inline

Definition at line 36 of file space_info_provider_interface.hpp.

◆ GetAllSpacesOccupiedBy()

template<typename ConcreteSpaceInfoProvider >
vector< BoardSpace > SpaceInfoProvider< ConcreteSpaceInfoProvider >::GetAllSpacesOccupiedBy ( PieceColor  color)
inline

Definition at line 17 of file space_info_provider_interface.hpp.

◆ GetColor()

template<typename ConcreteSpaceInfoProvider >
PieceColor SpaceInfoProvider< ConcreteSpaceInfoProvider >::GetColor ( const BoardSpace space)
inline

Definition at line 22 of file space_info_provider_interface.hpp.

◆ GetType()

template<typename ConcreteSpaceInfoProvider >
PieceType SpaceInfoProvider< ConcreteSpaceInfoProvider >::GetType ( const BoardSpace space)
inline

Definition at line 26 of file space_info_provider_interface.hpp.

◆ IsDraw()

template<typename ConcreteSpaceInfoProvider >
bool SpaceInfoProvider< ConcreteSpaceInfoProvider >::IsDraw ( )
inline

Definition at line 49 of file space_info_provider_interface.hpp.

◆ UndoMove()

template<typename ConcreteSpaceInfoProvider >
void SpaceInfoProvider< ConcreteSpaceInfoProvider >::UndoMove ( const ExecutedMove executed_move)
inline

Definition at line 40 of file space_info_provider_interface.hpp.


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