Quantum-Chess 0.5
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Piece

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 Pieceoperator= (Piece const &)=default
 
constexpr Piece (Piece &&)=default
 Deplacement d'un objet piece vers un autre objet piece.
 
constexpr Pieceoperator= (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< Coordget_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< Coordget_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< Moveget_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< Coordget_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< Coordget_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< Coordget_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< Coordget_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< Coordget_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< Coordget_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< Coordget_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< Coordget_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 )
 

Description détaillée

Class conservant le type et la couleur d'une pièce. Elle permet aussi de recuperer ses mouvement possible.

Documentation des énumérations membres

◆ Move_Mode

enum class Piece::Move_Mode
strongprivate

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.

Valeurs énumérées
NORMAL 

Dans le cas du mouvement classique on autorise la prise de pièce.

SPLIT 

Dans le cas du split on interdit la prise de pièce.

Documentation des constructeurs et destructeur

◆ Piece() [1/4]

Piece::Piece ( )
inlineconstexprnoexcept

◆ Piece() [2/4]

Piece::Piece ( TypePiece piece,
Color color )
inlineconstexprnoexcept

Construit une piece à l'aide de son type et de sa couleur.

Paramètres
[in]pieceLe type de la piece
[in]colorLa couleur de la piece

◆ Piece() [3/4]

Piece::Piece ( Piece const & )
inlineconstexprdefault

◆ Piece() [4/4]

Piece::Piece ( Piece && )
inlineconstexprdefault

Deplacement d'un objet piece vers un autre objet piece.

◆ ~Piece()

Piece::~Piece ( )
inlineconstexprdefault

Documentation des fonctions membres

◆ abs_substracte()

static constexpr std::size_t Piece::abs_substracte ( std::size_t x,
std::size_t y )
inlinestaticconstexprprivatenoexcept

renvoie la valeur absolue d'un soustraction sur des types size_t

Paramètres
[in]xVariable de type size_t
[in]yVariable de type size_t
Renvoie
std::size_t Retourne l'opération |x - y|

◆ check_if_use_move_promote()

template<std::size_t N, std::size_t M>
CONSTEXPR bool Piece::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.

Note
peut etre utiliser sans verifier si la pièce est un pion
Paramètres
[in]boardLe plateau
[in]posLa position de la pièce
Renvoie
true si le mouvement possible est un mouvement de promotion
false sinon

◆ get_color()

Color Piece::get_color ( ) const
inlineconstexprnoexcept

Renvoie la couleur d'un piece.

Renvoie
Color La couleur de la piece

◆ get_list_move()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement pour n'importe qu'elle pièce.

Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position de la pièce
[in]list_moveLa liste de tout les mouvements possible
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible

◆ get_list_move_bishop()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_bishop ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement du fou.

Avertissement
ne verifie pas si c'est bien un fou
Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position du fou
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour le fou

◆ get_list_move_king()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_king ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement du roi.

Avertissement
Ne récupère les mouvements du roque que pour un tableau de taille 8 x 8
ne verifie pas si c'est bien un roi
Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position du roi
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour le roi

◆ get_list_move_knight()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_knight ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement du cavalier.

Avertissement
ne verifie pas si c'est bien un cavalier
Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position du cavalier
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour le cavalier

◆ get_list_move_pawn()

template<std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_pawn ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement du pion.

Avertissement
ne verifie pas si c'est bien un pion
Paramètres du template
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position du pion
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour le pion

◆ get_list_move_queen()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_queen ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement de la dame.

Avertissement
ne verifie pas si c'est bien une dame
Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position de la dame
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour la dame

◆ get_list_move_rec()

template<Move_Mode MOVE, std::size_t N, std::size_t M, std::size_t SIZE>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_rec ( Board< N, M > const & board,
Coord const & pos,
std::array< int, SIZE > const & list_move ) const
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)

Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
SIZELa taille de la liste des mouvements possible
Paramètres
[in]boardLe plateau
[in]posLa position de la pièce
[in]list_moveLa liste de tout les mouvements possible
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible

◆ get_list_move_rook()

template<Move_Mode MOVE, std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::get_list_move_rook ( Board< N, M > const & board,
Coord const & pos ) const
privatenoexcept

Récupère la liste de mouvement de la tour.

Avertissement
ne verifie pas si c'est bien une tour
Paramètres du template
MOVELe type de mouvement utiliser entre normal et split (split ne prend pas les mouvements de capture de pièce)
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posLa position de la tour
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible pour la tour

◆ get_list_normal_move()

template<std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::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.

Paramètres du template
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posla position de la piece sur le plateau
Avertissement
Le resultat n'est pas garanti si la position ne concorde pas avec la position de la piece sur le plateau
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées de chaque mouvement possible

◆ get_list_promote()

template<std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Move > Piece::get_list_promote ( Board< N, M > const & board,
Coord const & pos ) const
noexcept

Renvoie la liste de toutes les promotions.

Avertissement
Ne verifie pas la validité du mouvement, de la position ou du type de la pièce
Paramètres
[in]boardLe plateau
[in]posLa position du pion
Renvoie
La liste de tout les mouvements de promotion

◆ get_list_split_move()

template<std::size_t N, std::size_t M>
CONSTEXPR std::forward_list< Coord > Piece::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.

Paramètres du template
NLe nombre de ligne du plateau
MLe nombre de colonne du plateau
Paramètres
[in]boardLe plateau
[in]posla position de la piece sur le plateau
Avertissement
Le resultat n'est pas garanti si la position ne concorde pas avec la position de la piece sur le plateau
Ne renvoie qu'une liste de coordonnées uniques car l'ensemble des mouvements possibles est toutes les couples de coordonnées de la liste
Renvoie
std::forward_list<Coord> La liste de coordonnées des positions d'arrivées possible sachant que chaque élément représente une seule des deux cases d'arrivées d'un split move

◆ get_type()

TypePiece Piece::get_type ( ) const
inlineconstexprnoexcept

Renvoie le type de la piece.

Renvoie
Une enumération TypePiece

◆ is_black()

bool Piece::is_black ( ) const
inlineconstexprnoexcept

Teste si la piece est noire.

Renvoie
bool true si la piece est noire, false sinon

◆ is_white()

bool Piece::is_white ( ) const
inlineconstexprnoexcept

Teste si la piece est blanche.

Renvoie
bool true si la piece est blanche, false sinon

◆ norm()

static constexpr double Piece::norm ( Coord const & x,
Coord const & y )
inlinestaticconstexprprivatenoexcept

renvoie la distance entre deux coordonnées à l'aide de la norme 2

Paramètres
[in]xPremière coordonnée
[in]ySeconde coordonnée
Renvoie
double le résultat de la norme 1

◆ operator=() [1/2]

Piece & Piece::operator= ( Piece && )
inlineconstexprdefault

◆ operator=() [2/2]

Piece & Piece::operator= ( Piece const & )
inlineconstexprdefault

◆ same_color()

bool Piece::same_color ( Piece const & other) const
inlineconstexprnoexcept

Teste si l'autre piece est de la meme couleur.

Paramètres
[in]otherL'autre pièce à comparer
Renvoie
bool true si la piece est de la meme couleur, false sinon

Documentation des données membres

◆ m_color

Color Piece::m_color
private

La couleur de la pièce (WHITE/BLACK)

◆ m_type

TypePiece Piece::m_type
private

Le type de la piece ( KING / QUEEN / ROOK / BISHOP / KNIGHT / PAWN )


La documentation de cette classe a été générée à partir du fichier suivant :