Quantum-Chess 0.5
|
La classe représentant le plateau de jeu. Plus de détails...
#include <Board.hpp>
Fonctions membres publiques | |
CONSTEXPR | Board () |
CONSTEXPR | Board (std::initializer_list< std::initializer_list< Piece > > const &board) |
CONSTEXPR | Board (std::ranges::common_range auto const &board) |
Initialise le plateau à partir d'un ensemble de pièce, les pièces ne sont pas divisées initialement. | |
CONSTEXPR | Board (Board const &)=default |
CONSTEXPR Board & | operator= (Board const &)=default |
CONSTEXPR | Board (Board &&)=default |
CONSTEXPR Board & | operator= (Board &&)=default |
CONSTEXPR | ~Board ()=default |
CONSTEXPR Piece const & | operator() (std::size_t n, std::size_t m) const noexcept |
Retourne un pointeur sur la piece à l'emplacement cible. | |
CONSTEXPR std::forward_list< Coord > | get_list_normal_move (Coord const &pos) const |
Renvoie la liste dans tous les mouvements classiques légaux d'une pièce. | |
CONSTEXPR std::forward_list< Coord > | get_list_split_move (Coord const &pos) const |
Renvoie la liste de toutes les cases qu'une pièce peut atteindre lors d'un mouvement split, il faut choisir deux éléments de la liste pour créer un mouvement split. | |
CONSTEXPR bool | check_if_use_move_promote (Coord const &pos) const noexcept |
Teste si les mouvement de la piece sont si la pièce est un pion un mouvement de promotion. | |
CONSTEXPR std::forward_list< Move > | get_list_promote (Coord const &pos) const noexcept |
Renvoie la liste de toutes les promotions. | |
template<class UnitaryFunction> | |
CONSTEXPR void | all_move (UnitaryFunction func, std::optional< Color > color_player=std::nullopt) const noexcept |
Applique une fonction à l'entiéreté des mouvements possible. | |
CONSTEXPR bool | move_is_legal (Move const &move) const |
Test si un mouvement est réalisable. | |
CONSTEXPR void | move (Move const &movement, std::optional< bool > val_mes=std::nullopt) |
Réalise un mouvement d'une pièce quelque soit le type du mouvement (classic, split, merge) | |
CONSTEXPR bool | winning_position (Color c) const noexcept |
Test si un plateau est gagnant pour une couleur. | |
CONSTEXPR Color | get_current_player () const noexcept |
Recupère la couleur du joueur au tour de jouer. | |
CONSTEXPR void | change_player () noexcept |
Change le joueur actuel et passe la main à l'autre joueur. | |
CONSTEXPR double | get_proba (Coord const &pos) const noexcept |
Renvoie la probabilité qu'il y ait une pièce à une position. | |
CONSTEXPR void | move_promotion (Move const &move, std::optional< bool > val_mes=std::nullopt) |
Fonction qui permet de faire un mouvement de pion quelconque avec une promotion. | |
CONSTEXPR double | get_proba_move (Move const &move) const noexcept |
Renvoie la probabilité que le mouvement soit réalisé | |
Fonctions membres publiques statiques | |
static CONSTEXPR std::size_t | numberLines () noexcept |
Retourne le nombre de ligne du plateau. | |
static CONSTEXPR std::size_t | numberColumns () noexcept |
Retourne le nombre de colonne. | |
Fonctions membres privées | |
CONSTEXPR double | get_proba_mesure (Coord const &p) const noexcept |
Renvoie la probabilité que la fonction mesure renvoie true, c'est-à-dire la proba que le mouvement soit"réussi". | |
CONSTEXPR double | get_proba_mesure_capture_slide (Coord const &s, Coord const &t, std::function< bool(Board< N, M > const &, Coord const &, Coord const &, std::size_t, std::optional< Coord >)> check_path) const noexcept |
Renvoie la probabilité que la fonction mesure_capture_slide renvoie true, c'est-à-dire la proba que le mouvement de capture_slide soit"réussi". | |
CONSTEXPR double | get_proba_mesure_castle (Coord const &king, Coord const &rook) const noexcept |
Renvoie laprobabilité que la fonction mesure_castle renvoie true, c'est-à-dire la proba que le mouvement de roque soit"réussi". | |
void | update_case (std::size_t pos) noexcept |
Vérifie si la case à une possibilité de contenir une pièce, et si elle n'en a pas modifie m_piece_board en nullptr. | |
void | update_board () noexcept |
Fonction qui permet de mattre à jour le plateau, car ce mouvement entraine l'apparition de plusieurs instance de board identique, il faut donc les concaténer en ajoutant les probas, si la proba vaut 0, on supprime l'instance. | |
void | update_board_classic () noexcept |
CONSTEXPR void | move_classic_jump (Coord const &s, Coord const &t, std::optional< bool > val_mes=std::nullopt) |
Mouvement classique d'une pièce qui "saute" (cavalier, roi) | |
CONSTEXPR void | move_split_jump (Coord const &s, Coord const &t1, Coord const &t2) |
Mouvement "split jump". | |
CONSTEXPR void | move_merge_jump (Coord const &s, Coord const &t1, Coord const &t2) |
Mouvement de merge. | |
CONSTEXPR void | move_classic_slide (Coord const &s, Coord const &t, std::function< bool(Board< N, M > const &, Coord const &, Coord const &, std::size_t, std::optional< Coord >)> check_path, std::optional< bool > val_mes=std::nullopt) |
Mouvement classique d'un pièce qui "glisse" (fou, dame, tour) | |
CONSTEXPR void | move_split_slide (Coord const &s, Coord const &t1, Coord const &t2, std::function< bool(Board< N, M > const &, Coord const &, Coord const &, std::size_t, std::optional< Coord >)> check_path) |
Mouvement "split slide". | |
CONSTEXPR void | move_merge_slide (Coord const &s1, Coord const &s2, Coord const &t, std::function< bool(Board< N, M > const &, Coord const &, Coord const &, std::size_t, std::optional< Coord >)> check_path) |
Mouvement de merge. | |
CONSTEXPR bool | move_pawn_one_step (Coord const &s, Coord const &t, std::optional< bool > val_mes=std::nullopt) |
Le mouvement de piond'une case fonctionne comme un mouvementde jump classique, à la différence qu'un pion ne peut pas capturer une pièce en avançant. On mesure de la même façon qu'un jump classique en considérant toutes les pièces comme des pièces alliées. | |
CONSTEXPR bool | move_pawn_two_step (Coord const &s, Coord const &t, std::optional< bool > val_mes=std::nullopt) |
Le mouvement de pion de deux cases fonctionne comme un mouvement de slide classique, à la différence qu'un pion ne peut pas capturer une pièce en avançant, on mesure de la même façon qu'un slide classique en considérant toutes les pièces comme des pièces alliées. | |
CONSTEXPR bool | capture_pawn (Coord const &s, Coord const &t, std::optional< bool > val_mes=std::nullopt) |
Mouvement de capture dun pion. A la différence d'un mouvement de "capture jump", on mesure la présence de la cible car le pion a besoin de la cible pour se déplacer. | |
CONSTEXPR bool | move_enpassant (Coord const &s, Coord const &t, Coord const &ep, std::optional< bool > val_mes=std::nullopt) |
Permet d'effectuer un mouvement de prise en passant. | |
CONSTEXPR bool | mesure (Coord const &p, std::optional< bool > val_mes=std::nullopt) |
Mesure la présence d'une pièce. | |
CONSTEXPR bool | mesure_capture_slide (Coord const &s, Coord const &t, std::function< bool(Board< N, M > const &, Coord const &, Coord const &, std::size_t, std::optional< Coord >)> check_path, std::optional< bool > val_mes=std::nullopt) |
Fonction qui permet de faire une mesure dans le cas d'un mouvement "capture slide". | |
CONSTEXPR void | move_classic (Coord const &s, Coord const &t, std::optional< bool > val_mes) |
Mouvement classique d'une pièce (pion exclu) | |
CONSTEXPR void | move_split (Coord const &s, Coord const &t1, Coord const &t2) |
Mouvement split d'une pièce (pion exclu) | |
CONSTEXPR void | move_merge (Coord const &s1, Coord const &s2, Coord const &t) |
Mouvement de merge de pièce (pion exclu) | |
CONSTEXPR bool | move_pawn (Coord const &s, Coord const &t, std::optional< bool > val_mes=std::nullopt) noexcept |
Gère tout les mouvements d'un pion. | |
template<std::size_t Q> | |
CONSTEXPR void | modify (std::array< std::pair< std::array< bool, Q >, std::complex< double > >, 2 > const &arrayQubit, std::size_t position_board, std::array< std::size_t, Q > const &tab_positions) |
fonction auxiliaire qui permet de modifier un plateau à l'aide d'un array de la forme du type de retour de la fonction qubitToArray, le deuxième éléments du tableau à une probalité non nulle lors d'un mouvement split | |
template<std::size_t Q> | |
CONSTEXPR void | move_1_instance (std::array< bool, Q > const &case_modif, std::size_t position, CMatrix< _2POW(Q)> const &matrix, std::array< std::size_t, Q > const &tab_positions) noexcept |
Fonction qui permet d'effectuer un mouvement sur une instance du plateau. | |
CONSTEXPR void | king_side_castle (Coord const &king, Coord const &rook, std::optional< bool > val_mes=std::nullopt) |
Mouvement du petit roque. | |
CONSTEXPR bool | mesure_castle (Coord const &king, Coord const &rook, std::optional< bool > val_mes=std::nullopt) |
Fonction qui permet de mesurer la possibilité de faire le roque. | |
CONSTEXPR void | queen_side_castle (Coord const &king, Coord const &rook, std::optional< bool > val_mes=std::nullopt) |
Mouvement du grand roque. | |
Fonctions membres privées statiques | |
static CONSTEXPR std::size_t | offset (std::size_t ligne, std::size_t colonne) noexcept |
Renvoie une position 1D d'une coordonnée 2D. | |
static CONSTEXPR void | range_to_2_array (std::ranges::common_range auto const &board, std::array< bool, N *M > &first_instance, std::array< Piece, N *M > &piece_board) noexcept |
Initialise un plateau à l'aide d'un container 2D. | |
static CONSTEXPR void | init_mailbox (std::array< int, N *M > &S_mailbox, std::array< int,(N+4) *(M+2)> &L_mailbox) noexcept |
Construit les mailbox en fonction des dimenssions du plateau. | |
Attributs privés | |
std::vector< std::pair< std::array< bool, N *M >, std::complex< double > > > | m_board |
Le tableau de toutes les instances possibles du plateau. | |
std::array< Piece, N *M > | m_piece_board |
Le plateau indiquant le type des pièces. | |
std::array< int, N *M > | m_S_mailbox |
La petite mailbox. | |
std::array< int,(N+4) *(M+2)> | m_L_mailbox |
La grande mailbox. | |
Color | m_color_current_player |
Color::WHITE si c'est aux blanc de jouer aux noirs sinon. | |
std::array< bool, 2 > | m_k_castle |
Vrai si les noirs[0] / blancs[1] peuvent faire le petit roque. | |
std::array< bool, 2 > | m_q_castle |
Vrai si les noirs[0] / blancs[1] peuvent faire le grand roque. | |
std::optional< Coord > | m_ep |
Contient la case sur laquelle il est possible de faire une prise en passant qui est vide (la case occupé si le pion avait avancé d'une seule case) | |
Amis | |
class | Piece |
template<std::size_t _N, std::size_t _M> | |
CONSTEXPR bool | check_path_straight_1_instance (Board< _N, _M > const &board, Coord const &dpt, Coord const &arv, std::size_t position, std::optional< Coord >) |
template<std::size_t _N, std::size_t _M> | |
CONSTEXPR bool | check_path_diagonal_1_instance (Board< _N, _M > const &board, Coord const &dpt, Coord const &arv, std::size_t position, std::optional< Coord >) |
template<std::size_t _N, std::size_t _M> | |
CONSTEXPR bool | check_path_queen_1_instance (Board< _N, _M > const &board, Coord const &dpt, Coord const &arv, std::size_t position, std::optional< Coord >) |
La classe représentant le plateau de jeu.
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
CONSTEXPR Board< N, M >::Board | ( | std::initializer_list< std::initializer_list< Piece > > const & | board | ) |
CONSTEXPR Board< N, M >::Board | ( | std::ranges::common_range auto const & | board | ) |
Initialise le plateau à partir d'un ensemble de pièce, les pièces ne sont pas divisées initialement.
[in] | board | Double initializer_list sur des Piece |
|
default |
|
default |
|
noexcept |
Applique une fonction à l'entiéreté des mouvements possible.
[in,out] | func | La fonction à appliquer sur tout les mouvements Prototype : bool f(Move const&) Si renvoie true alors le parcourt est intérompue |
[in] | color | La couleur du joueur auquel on récupère les mouvements |
|
private |
Mouvement de capture dun pion. A la différence d'un mouvement de "capture jump", on mesure la présence de la cible car le pion a besoin de la cible pour se déplacer.
[in] | s | Coordonnées de la source |
[in] | t | Coordonnées de la cible |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
noexcept |
Change le joueur actuel et passe la main à l'autre joueur.
|
noexcept |
Teste si les mouvement de la piece sont si la pièce est un pion un mouvement de promotion.
[in] | pos | La position de la pièce |
|
noexcept |
Recupère la couleur du joueur au tour de jouer.
CONSTEXPR std::forward_list< Coord > Board< N, M >::get_list_normal_move | ( | Coord const & | pos | ) | const |
Renvoie la liste dans tous les mouvements classiques légaux d'une pièce.
pos | Position de la pièce |
|
noexcept |
Renvoie la liste de toutes les promotions.
[in] | pos | La position du pion |
CONSTEXPR std::forward_list< Coord > Board< N, M >::get_list_split_move | ( | Coord const & | pos | ) | const |
Renvoie la liste de toutes les cases qu'une pièce peut atteindre lors d'un mouvement split, il faut choisir deux éléments de la liste pour créer un mouvement split.
[in] | pos | Position de la pièce. |
|
noexcept |
Renvoie la probabilité qu'il y ait une pièce à une position.
pos | La position |
|
privatenoexcept |
Renvoie la probabilité que la fonction mesure renvoie true, c'est-à-dire la proba que le mouvement soit"réussi".
p | Coordonnées de la case |
|
privatenoexcept |
Renvoie la probabilité que la fonction mesure_capture_slide renvoie true, c'est-à-dire la proba que le mouvement de capture_slide soit"réussi".
s | Coordonnées de la source |
t | Coordonnées de la cible |
check_path | Fonction qui teste la présence d'une pièce entre une source et une cible |
|
privatenoexcept |
Renvoie laprobabilité que la fonction mesure_castle renvoie true, c'est-à-dire la proba que le mouvement de roque soit"réussi".
king | Coordonnées du roi |
rook | Coordonnées de la tour |
|
noexcept |
Renvoie la probabilité que le mouvement soit réalisé
move | Le mouvement à réaliser |
|
staticprivatenoexcept |
Construit les mailbox en fonction des dimenssions du plateau.
[out] | S_mailbox | La petite mailbox de la taille du plateau |
[out] | L_mailbox | La grande mailbox comportant 4 ligne de plus et 2 colonne de plus |
|
private |
Mouvement du petit roque.
[in] | king | Coordonnées du roi |
[in] | rook | Coordonnées de la tour |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Mesure la présence d'une pièce.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | position | La position de la pièce mesurée |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Fonction qui permet de faire une mesure dans le cas d'un mouvement "capture slide".
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t | Coordonnées de la cible du mouvement |
[in] | check_path | Fonction qui permet de vérifier si il y a une pièce entre la source et la cible sur une instance du plateau |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Fonction qui permet de mesurer la possibilité de faire le roque.
[in] | king | Coordonnées du roi |
[in] | rook | Coordonnées de la tour |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
fonction auxiliaire qui permet de modifier un plateau à l'aide d'un array de la forme du type de retour de la fonction qubitToArray, le deuxième éléments du tableau à une probalité non nulle lors d'un mouvement split
Q | La taille du qubit |
N | Le nombre de ligne du plateau |
M | Le nombre de collone du plateau |
[in] | arrayQubit | Type de retour de la fonction quibitToArray, représente la facon dont va être modifier m_board |
[in] | position_board | L'indice du plateau dans le tableau de toutes les instances du plateau |
[in] | tab_positions | Tableau des indices des cases modifiées, on utilise N*M+1 pour signifier que le qubit en question est un qubit auxiliaire qui ne modifie pas le board |
CONSTEXPR void Board< N, M >::move | ( | Move const & | movement, |
std::optional< bool > | val_mes = std::nullopt ) |
Réalise un mouvement d'une pièce quelque soit le type du mouvement (classic, split, merge)
[in] | movement | Le mouvement à raliser |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
privatenoexcept |
Fonction qui permet d'effectuer un mouvement sur une instance du plateau.
N | Le nombre de ligne du plateau |
M | Le nombre de colonnes du plateau |
Q | La taille du qubit |
[in] | case_modif | Permet d'initialiser le qubit |
[in] | position | L'instance du plateau modifiée |
[in] | matrix | La matrice du mouvement que l'on veut effectuer |
[in] | tab_positions | La position sur le plateau des variables utilisées dans le qubit, que l'on met à N*M+1 si les variables ne représentent pas des pièces |
|
private |
Mouvement classique d'une pièce (pion exclu)
N | Le nombre de ligne du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t | Coordonnées de la cible du mouvement |
|
private |
Mouvement classique d'une pièce qui "saute" (cavalier, roi)
N | Le nombre de ligne du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t | Coordonnées de la cible du mouvement |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Mouvement classique d'un pièce qui "glisse" (fou, dame, tour)
N | Le nombre de lignes |
M | Le nombre de colonnes |
[in] | s | Coordonnées de la source |
[in] | t | Coordonnées de la cible |
[in] | check_path | Fonction qui permet de vérifier la présence d'une pièce entre la source et la cible sur une instance du plateau |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Permet d'effectuer un mouvement de prise en passant.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnnes du plateau |
[in] | s | Les coordonnées de la source |
[in] | t | Les coordonnées de la cible (l'endroit où arrive le pion) |
[in] | ep | Les coordonnées du pion capturer "en passant" |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
CONSTEXPR bool Board< N, M >::move_is_legal | ( | Move const & | move | ) | const |
Test si un mouvement est réalisable.
[in] | move | Le mouvement à tester |
|
private |
Mouvement de merge de pièce (pion exclu)
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s1 | Coordonnées de la source 1 |
[in] | s2 | Coordonnées de la source 2 |
[in] | t | Coordonnées de la cible |
|
private |
Mouvement de merge.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s1 | Coordonnées de la source 1 |
[in] | s2 | Coordonnées de la source 2 |
[in] | t | Coordonnées de la cible |
|
private |
Mouvement de merge.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s1 | Coordonnées de la source 1 |
[in] | s2 | Coordonnées de la source 2 |
[in] | t | Coordonnées de la cible |
[in] | check_path | Fonction qui permet de vérifier la présence d'une pièce entre la source et la cible sur une instance du plateau |
|
privatenoexcept |
Gère tout les mouvements d'un pion.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source |
[in] | t | Coordonnées de la cible |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Le mouvement de piond'une case fonctionne comme un mouvementde jump classique, à la différence qu'un pion ne peut pas capturer une pièce en avançant. On mesure de la même façon qu'un jump classique en considérant toutes les pièces comme des pièces alliées.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source |
[in] | t | Coordonnées de la cible |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Le mouvement de pion de deux cases fonctionne comme un mouvement de slide classique, à la différence qu'un pion ne peut pas capturer une pièce en avançant, on mesure de la même façon qu'un slide classique en considérant toutes les pièces comme des pièces alliées.
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source |
[in] | t | Coordonnées de la cible |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
CONSTEXPR void Board< N, M >::move_promotion | ( | Move const & | move, |
std::optional< bool > | val_mes = std::nullopt ) |
Fonction qui permet de faire un mouvement de pion quelconque avec une promotion.
s | Coordonnées de la source | |
t | Coordonnées de la cible | |
p | Le type de la pièce de la promotion | |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
private |
Mouvement split d'une pièce (pion exclu)
N | Le nombre de ligne du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t1 | Coordonnées de la cible 1 (qui doit être vide) |
[in] | t2 | Coordonnées de la cible 2 (qui doit être vide) |
|
private |
Mouvement "split jump".
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t1 | Coordonnées de la cible 1 (qui doit être vide) |
[in] | t2 | Coordonnées de la cible 2 (qui doit être vide) |
|
private |
Mouvement "split slide".
N | Le nombre de lignes du plateau |
M | Le nombre de colonnes du plateau |
[in] | s | Coordonnées de la source du mouvement |
[in] | t1 | Coordonnées de la cible 1 (qui doit être vide) |
[in] | t2 | Coordonnées de la cible 2 (qui doit être vide) |
[in] | check_path | Fonction qui permet de vérifier la présence d'une pièce entre la source et la cible sur une instance du plateau |
|
staticnoexcept |
Retourne le nombre de colonne.
|
staticnoexcept |
Retourne le nombre de ligne du plateau.
|
staticprivatenoexcept |
Renvoie une position 1D d'une coordonnée 2D.
[in] | ligne | L'indice de ligne |
[in] | colonne | L'indice de colonne |
|
noexcept |
Retourne un pointeur sur la piece à l'emplacement cible.
[in] | n | L'indice de la ligne |
[in] | m | L'indice de la colonne |
|
default |
|
default |
|
private |
Mouvement du grand roque.
[in] | king | Coordonnées du roi |
[in] | rook | Coordonnées de la tour |
[in] | val_mes | Optionel peut determiner la mesure de la présence d'une pièce ou non |
|
staticprivatenoexcept |
Initialise un plateau à l'aide d'un container 2D.
[in] | board | Un container 2D |
[out] | first_instance | Le tableau de la première instance du plateau |
[out] | piece_board | Le plateau contenant les pièces |
|
privatenoexcept |
Fonction qui permet de mattre à jour le plateau, car ce mouvement entraine l'apparition de plusieurs instance de board identique, il faut donc les concaténer en ajoutant les probas, si la proba vaut 0, on supprime l'instance.
|
privatenoexcept |
|
privatenoexcept |
Vérifie si la case à une possibilité de contenir une pièce, et si elle n'en a pas modifie m_piece_board en nullptr.
pos | Les coordonnées de a position de la case a vérifier. |
|
noexcept |
Test si un plateau est gagnant pour une couleur.
[in] | c | Couleur |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
Le tableau de toutes les instances possibles du plateau.
Color::WHITE si c'est aux blanc de jouer aux noirs sinon.
Contient la case sur laquelle il est possible de faire une prise en passant qui est vide (la case occupé si le pion avait avancé d'une seule case)
|
private |
Vrai si les noirs[0] / blancs[1] peuvent faire le petit roque.
|
private |
La grande mailbox.
|
private |
Le plateau indiquant le type des pièces.
|
private |
Vrai si les noirs[0] / blancs[1] peuvent faire le grand roque.
|
private |
La petite mailbox.