Xiangiqgame
AI engine for Xiangqi
Loading...
Searching...
No Matches
move_calculator_details.hpp
Go to the documentation of this file.
1
4
5#pragma once
6
7#include <array>
10
11using namespace std;
12using namespace gameboard;
13using namespace gameboard;
14
15namespace gameboard {
16typedef void (PieceMoves::*
18
19typedef array<MethodPtr_t, kNumPieceTypeVals> PieceDispatchArray_t;
20
22 PieceDispatchArray_t dispatch_array{};
23 dispatch_array[PieceType::kNnn] = {};
27 dispatch_array[PieceType::kHor] = &PieceMoves::HorseMoves;
31
32 return dispatch_array;
33}
34} // namespace gameboard
Constants, typedefs, and simple structs used by gameboard::GameBoard.
Implements piece type dependent move rules; used by gameboard::MoveCalculator.
Definition: piece_moves.hpp:19
void ElephantMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
void SoldierMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
Definition: piece_moves.cpp:34
void HorseMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
void AdvisorMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
void GeneralMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
void ChariotMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
Definition: piece_moves.cpp:83
void CannonMoves(const BoardMap_t &board_map, PieceColor color, const BoardSpace &space, MoveCollection &team_moves)
Definition: piece_moves.cpp:57
Tracking piece positions and determining legal moves.
void(PieceMoves::* MethodPtr_t)(const BoardMap_t &, PieceColor, const BoardSpace &, MoveCollection &)
array< MethodPtr_t, kNumPieceTypeVals > PieceDispatchArray_t
array< array< GamePiece, kNumFiles >, kNumRanks > BoardMap_t
2-D array of gameboard::GamePiece objects.
constexpr PieceDispatchArray_t build_piece_dispatch_array()
Definition of gameboard::PieceMoves and related constants.
A pair of coordinate (rank, and file) with properties determined by comparison with values of gameboa...
A container for multiple gameboard::Move objects.