Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
gameboard::GameBoard Class Reference

Implements SpaceInfoProvider interface; stores piece positions, and exposes methods for calculating, executing, an un-doing moves. More...

#include <game_board.hpp>

Inheritance diagram for gameboard::GameBoard:
Inheritance graph
Collaboration diagram for gameboard::GameBoard:
Collaboration graph

Public Member Functions

 GameBoard ()
 
 GameBoard (const BoardMapInt_t starting_board)
 Initializes a gameboard::GameBoard from array of pieces represented as integers.
 
vector< BoardSpaceImplementGetAllSpacesOccupiedBy (PieceColor color) const
 
PieceColor ImplementGetColor (const BoardSpace &space) const
 
PieceType ImplementGetType (const BoardSpace &space) const
 
MoveCollection ImplementCalcFinalMovesOf (PieceColor color)
 
bool IsInCheck (PieceColor color)
 
ExecutedMove ImplementExecuteMove (const Move &move)
 
bool IsCaptureMove (const ExecutedMove &executed_move) const
 
void ImplementUndoMove (const ExecutedMove &executed_move)
 
GamePiece GetOccupantAt (const BoardSpace &space) const
 
const BoardMap_tmap () const
 
void ImplementAttachMoveCallback (const function< void(const ExecutedMove &)> &callback)
 
bool ImplementIsDraw ()
 
const std::map< PieceColor, vector< ExecutedMove > > & move_log () const
 
- Public Member Functions inherited from SpaceInfoProvider< GameBoard >
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 ()
 

Private Member Functions

void UpdateStateTracker (const ExecutedMove &executed_move)
 
void SetOccupantAt (const BoardSpace &space, GamePiece piece)
 
void AddToMoveLog (const ExecutedMove &executed_move)
 
void RemoveFromMoveLog (const ExecutedMove &executed_move)
 
bool ViolatesRepeatRule (PieceColor color)
 

Private Attributes

BoardMap_t board_map_
 2-D array of GamePiece objects.
 
MoveCalculator move_calculator_
 Encapsulates all calculations of allowed moves.
 
vector< function< void(const ExecutedMove &)> > move_callbacks_
 Stores functions that are called after any change in board config to keep boardstate::SingleZobristCoordinator objects updated.
 
std::map< PieceColor, vector< ExecutedMove > > move_log_
 Vectors of all moves that have been executed (and not un-done) by each player.
 
MoveCountType moves_since_last_capture_
 Number of moves executed since last time a piece was captured.
 

Detailed Description

Implements SpaceInfoProvider interface; stores piece positions, and exposes methods for calculating, executing, an un-doing moves.

Definition at line 25 of file game_board.hpp.

Constructor & Destructor Documentation

◆ GameBoard() [1/2]

gameboard::GameBoard::GameBoard ( )

Definition at line 49 of file gameboard.cpp.

◆ GameBoard() [2/2]

gameboard::GameBoard::GameBoard ( const BoardMapInt_t  starting_board)

Initializes a gameboard::GameBoard from array of pieces represented as integers.

Parameters
starting_boardAn array of integers representing pieces on the board.

Definition at line 44 of file gameboard.cpp.

Member Function Documentation

◆ AddToMoveLog()

void gameboard::GameBoard::AddToMoveLog ( const ExecutedMove executed_move)
private

Definition at line 157 of file gameboard.cpp.

◆ GetOccupantAt()

GamePiece gameboard::GameBoard::GetOccupantAt ( const BoardSpace space) const

Definition at line 128 of file gameboard.cpp.

◆ ImplementAttachMoveCallback()

void gameboard::GameBoard::ImplementAttachMoveCallback ( const function< void(const ExecutedMove &)> &  callback)

Definition at line 134 of file gameboard.cpp.

◆ ImplementCalcFinalMovesOf()

MoveCollection gameboard::GameBoard::ImplementCalcFinalMovesOf ( PieceColor  color)

Definition at line 64 of file gameboard.cpp.

◆ ImplementExecuteMove()

ExecutedMove gameboard::GameBoard::ImplementExecuteMove ( const Move move)

Definition at line 97 of file gameboard.cpp.

◆ ImplementGetAllSpacesOccupiedBy()

vector< BoardSpace > gameboard::GameBoard::ImplementGetAllSpacesOccupiedBy ( PieceColor  color) const

Definition at line 52 of file gameboard.cpp.

◆ ImplementGetColor()

PieceColor gameboard::GameBoard::ImplementGetColor ( const BoardSpace space) const

Definition at line 56 of file gameboard.cpp.

◆ ImplementGetType()

PieceType gameboard::GameBoard::ImplementGetType ( const BoardSpace space) const

Definition at line 60 of file gameboard.cpp.

◆ ImplementIsDraw()

bool gameboard::GameBoard::ImplementIsDraw ( )

Definition at line 139 of file gameboard.cpp.

◆ ImplementUndoMove()

void gameboard::GameBoard::ImplementUndoMove ( const ExecutedMove executed_move)

Definition at line 120 of file gameboard.cpp.

◆ IsCaptureMove()

bool gameboard::GameBoard::IsCaptureMove ( const ExecutedMove executed_move) const

Definition at line 116 of file gameboard.cpp.

◆ IsInCheck()

bool gameboard::GameBoard::IsInCheck ( PieceColor  color)

Definition at line 90 of file gameboard.cpp.

◆ map()

const BoardMap_t & gameboard::GameBoard::map ( ) const

Definition at line 132 of file gameboard.cpp.

◆ move_log()

const std::map< PieceColor, vector< ExecutedMove > > & gameboard::GameBoard::move_log ( ) const

Definition at line 143 of file gameboard.cpp.

◆ RemoveFromMoveLog()

void gameboard::GameBoard::RemoveFromMoveLog ( const ExecutedMove executed_move)
private

Definition at line 162 of file gameboard.cpp.

◆ SetOccupantAt()

void gameboard::GameBoard::SetOccupantAt ( const BoardSpace space,
GamePiece  piece 
)
private

Definition at line 153 of file gameboard.cpp.

◆ UpdateStateTracker()

void gameboard::GameBoard::UpdateStateTracker ( const ExecutedMove executed_move)
private

Definition at line 147 of file gameboard.cpp.

◆ ViolatesRepeatRule()

bool gameboard::GameBoard::ViolatesRepeatRule ( PieceColor  color)
private

Definition at line 171 of file gameboard.cpp.

Member Data Documentation

◆ board_map_

BoardMap_t gameboard::GameBoard::board_map_
private

2-D array of GamePiece objects.

Definition at line 45 of file game_board.hpp.

◆ move_calculator_

MoveCalculator gameboard::GameBoard::move_calculator_
private

Encapsulates all calculations of allowed moves.

Definition at line 48 of file game_board.hpp.

◆ move_callbacks_

vector<function<void(const ExecutedMove&)> > gameboard::GameBoard::move_callbacks_
private

Stores functions that are called after any change in board config to keep boardstate::SingleZobristCoordinator objects updated.

Definition at line 52 of file game_board.hpp.

◆ move_log_

std::map<PieceColor, vector<ExecutedMove> > gameboard::GameBoard::move_log_
private

Vectors of all moves that have been executed (and not un-done) by each player.

Definition at line 55 of file game_board.hpp.

◆ moves_since_last_capture_

MoveCountType gameboard::GameBoard::moves_since_last_capture_
private

Number of moves executed since last time a piece was captured.

Definition at line 58 of file game_board.hpp.


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