Quantum-Chess 0.5
|
Class conservant le type et la couleur d'une pièce. Elle permet aussi de recuperer ses mouvement possible. Plus de détails...
#include <Piece.hpp>
Fonctions membres publiques | |
constexpr | Piece () noexcept |
constexpr | Piece (TypePiece piece, Color color) noexcept |
Construit une piece à l'aide de son type et de sa couleur. | |
constexpr | Piece (Piece const &)=default |
constexpr Piece & | operator= (Piece const &)=default |
constexpr | Piece (Piece &&)=default |
Deplacement d'un objet piece vers un autre objet piece. | |
constexpr Piece & | operator= (Piece &&)=default |
constexpr | ~Piece ()=default |
constexpr TypePiece | get_type () const noexcept |
Renvoie le type de la piece. | |
constexpr Color | get_color () const noexcept |
Renvoie la couleur d'un piece. | |
template<std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_normal_move (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste des mouvements classics pour une piece. | |
template<std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_split_move (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste des mouvements split pour une piece. | |
constexpr bool | is_white () const noexcept |
Teste si la piece est blanche. | |
constexpr bool | is_black () const noexcept |
Teste si la piece est noire. | |
constexpr bool | same_color (Piece const &other) const noexcept |
Teste si l'autre piece est de la meme couleur. | |
template<std::size_t N, std::size_t M> | |
CONSTEXPR bool | check_if_use_move_promote (Board< N, M > const &board, Coord const &pos) const noexcept |
Teste si les mouvement de la piece sont si la pièce est un pion un mouvement de promotion. | |
template<std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Move > | get_list_promote (Board< N, M > const &board, Coord const &pos) const noexcept |
Renvoie la liste de toutes les promotions. | |
Types privés | |
enum class | Move_Mode { NORMAL , SPLIT } |
Enumération utilisé dans le template des fonctions qui récupère les listes de mouvement pour modifier leurs comportement lors de la prise de pièce. Plus de détails... | |
Fonctions membres privées | |
template<Move_Mode MOVE, std::size_t N, std::size_t M, std::size_t SIZE> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_rec (Board< N, M > const &board, Coord const &pos, std::array< int, SIZE > const &list_move) const noexcept |
Récupère la liste de mouvement d'une pièce pour les déplacements indiqué de manière récursive c'est à dire tout les mouvements infini (ex : diagonale du fou) | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_king (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement du roi. | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_knight (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement du cavalier. | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_bishop (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement du fou. | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_rook (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement de la tour. | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_queen (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement de la dame. | |
template<std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move_pawn (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement du pion. | |
template<Move_Mode MOVE, std::size_t N, std::size_t M> | |
CONSTEXPR std::forward_list< Coord > | get_list_move (Board< N, M > const &board, Coord const &pos) const noexcept |
Récupère la liste de mouvement pour n'importe qu'elle pièce. | |
Fonctions membres privées statiques | |
static constexpr std::size_t | abs_substracte (std::size_t x, std::size_t y) noexcept |
renvoie la valeur absolue d'un soustraction sur des types size_t | |
static constexpr double | norm (Coord const &x, Coord const &y) noexcept |
renvoie la distance entre deux coordonnées à l'aide de la norme 2 | |
Attributs privés | |
Color | m_color |
La couleur de la pièce (WHITE/BLACK) | |
TypePiece | m_type |
Le type de la piece ( KING / QUEEN / ROOK / BISHOP / KNIGHT / PAWN ) | |
Class conservant le type et la couleur d'une pièce. Elle permet aussi de recuperer ses mouvement possible.
|
strongprivate |
|
inlineconstexprnoexcept |
Construit une piece à l'aide de son type et de sa couleur.
[in] | piece | Le type de la piece |
[in] | color | La couleur de la piece |
|
inlineconstexprdefault |
|
inlineconstexprdefault |
Deplacement d'un objet piece vers un autre objet piece.
|
inlineconstexprdefault |
|
inlinestaticconstexprprivatenoexcept |
renvoie la valeur absolue d'un soustraction sur des types size_t
[in] | x | Variable de type size_t |
[in] | y | Variable de type size_t |
|
noexcept |
Teste si les mouvement de la piece sont si la pièce est un pion un mouvement de promotion.
[in] | board | Le plateau |
[in] | pos | La position de la pièce |
|
inlineconstexprnoexcept |
Renvoie la couleur d'un piece.
|
privatenoexcept |
Récupère la liste de mouvement pour n'importe qu'elle pièce.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position de la pièce |
[in] | list_move | La liste de tout les mouvements possible |
|
privatenoexcept |
Récupère la liste de mouvement du fou.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position du fou |
|
privatenoexcept |
Récupère la liste de mouvement du roi.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position du roi |
|
privatenoexcept |
Récupère la liste de mouvement du cavalier.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position du cavalier |
|
privatenoexcept |
Récupère la liste de mouvement du pion.
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position du pion |
|
privatenoexcept |
Récupère la liste de mouvement de la dame.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position de la dame |
|
privatenoexcept |
Récupère la liste de mouvement d'une pièce pour les déplacements indiqué de manière récursive c'est à dire tout les mouvements infini (ex : diagonale du fou)
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
SIZE | La taille de la liste des mouvements possible |
[in] | board | Le plateau |
[in] | pos | La position de la pièce |
[in] | list_move | La liste de tout les mouvements possible |
|
privatenoexcept |
Récupère la liste de mouvement de la tour.
MOVE | Le type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce) |
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | La position de la tour |
|
noexcept |
Récupère la liste des mouvements classics pour une piece.
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | la position de la piece sur le plateau |
|
noexcept |
Renvoie la liste de toutes les promotions.
[in] | board | Le plateau |
[in] | pos | La position du pion |
|
noexcept |
Récupère la liste des mouvements split pour une piece.
N | Le nombre de ligne du plateau |
M | Le nombre de colonne du plateau |
[in] | board | Le plateau |
[in] | pos | la position de la piece sur le plateau |
|
inlineconstexprnoexcept |
Renvoie le type de la piece.
|
inlineconstexprnoexcept |
Teste si la piece est noire.
|
inlineconstexprnoexcept |
Teste si la piece est blanche.
|
inlinestaticconstexprprivatenoexcept |
renvoie la distance entre deux coordonnées à l'aide de la norme 2
[in] | x | Première coordonnée |
[in] | y | Seconde coordonnée |
|
inlineconstexprnoexcept |
Teste si l'autre piece est de la meme couleur.
[in] | other | L'autre pièce à comparer |
|
private |
La couleur de la pièce (WHITE/BLACK)
|
private |
Le type de la piece ( KING / QUEEN / ROOK / BISHOP / KNIGHT / PAWN )