13template <std::
size_t N, std::
size_t M>
23 constexpr inline Piece() noexcept;
33 constexpr inline
Piece &operator=(
Piece const &) = default;
40 constexpr inline ~
Piece() = default;
68 template <
std::
size_t N,
std::
size_t M>
71 Coord const &pos) const noexcept;
89 template <
std::
size_t N,
std::
size_t M>
92 Coord const &pos) const noexcept;
99 constexpr inline
bool is_white() const noexcept;
129 template <
std::
size_t N,
std::
size_t M>
132 Coord const &pos) const noexcept;
144 template <
std::
size_t N,
std::
size_t M>
147 Coord const &pos) const noexcept;
177 constexpr inline static std::size_t
188 constexpr inline static double
207 template <Move_Mode MOVE, std::
size_t N, std::
size_t M, std::
size_t SIZE>
210 std::array<int, SIZE>
const &list_move)
const noexcept;
229 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
232 Coord const &pos)
const noexcept;
248 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
251 Coord const &pos)
const noexcept;
267 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
270 Coord const &pos)
const noexcept;
286 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
289 Coord const &pos)
const noexcept;
305 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
308 Coord const &pos)
const noexcept;
322 template <std::
size_t N, std::
size_t M>
325 Coord const &pos)
const noexcept;
341 template <Move_Mode MOVE, std::
size_t N, std::
size_t M>
344 Coord const &pos)
const noexcept;
359#include "get_list_move.tpp"
Color
Représente la couleur d'un joueur.
Definition Color.hpp:8
@ BLACK
Le joueur noir dont la valeur vaut 0.
Definition Color.hpp:12
@ WHITE
Le joueur blanc dont la valeur vaut 1.
Definition Color.hpp:17
#define CONSTEXPR
Utilisé pour utiliser ou non constexpr.
Definition Constexpr.hpp:7
constexpr Piece B_QUEEN
L'objet représentant la renne noire.
Definition Piece.hpp:379
constexpr Piece W_BISHOP
L'objet représentant le fou blanc.
Definition Piece.hpp:384
constexpr Piece B_KNIGHT
L'objet représentant le cavalier noir.
Definition Piece.hpp:409
constexpr Piece B_ROOK
L'objet représentant la tour noire.
Definition Piece.hpp:399
constexpr Piece B_BISHOP
L'objet représentant le fou noir.
Definition Piece.hpp:389
constexpr Piece W_ROOK
L'objet représentant la tour blanche.
Definition Piece.hpp:394
constexpr Piece B_PAWN
L'objet représentant le pion noir.
Definition Piece.hpp:419
constexpr Piece W_KNIGHT
L'objet représentant le cavalier blanc.
Definition Piece.hpp:404
constexpr Piece W_PAWN
L'objet représentant le pion blanc.
Definition Piece.hpp:414
constexpr Piece W_KING
L'objet représentant le roi blanc.
Definition Piece.hpp:364
constexpr Piece W_QUEEN
L'objet représentant la renne blanche.
Definition Piece.hpp:374
constexpr Piece B_KING
L'objet représentant le roi noir.
Definition Piece.hpp:369
TypePiece
Enumère toutes les sortes de pièces.
Definition TypePiece.hpp:8
@ QUEEN
Definition TypePiece.hpp:14
@ KING
Definition TypePiece.hpp:15
@ BISHOP
Definition TypePiece.hpp:12
@ PAWN
Definition TypePiece.hpp:10
@ ROOK
Definition TypePiece.hpp:13
@ KNIGHT
Definition TypePiece.hpp:11
La classe représentant le plateau de jeu.
Definition Board.hpp:33
Class conservant le type et la couleur d'une pièce. Elle permet aussi de recuperer ses mouvement poss...
Definition Piece.hpp:21
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.
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 à...
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.
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.
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
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.
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.
Color m_color
La couleur de la pièce (WHITE/BLACK)
Definition Piece.hpp:349
constexpr bool same_color(Piece const &other) const noexcept
Teste si l'autre piece est de la meme couleur.
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.
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.
constexpr Piece() noexcept
constexpr bool is_white() const noexcept
Teste si la piece est blanche.
static constexpr double norm(Coord const &x, Coord const &y) noexcept
renvoie la distance entre deux coordonnées à l'aide de la norme 2
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.
constexpr bool is_black() const noexcept
Teste si la piece est noire.
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.
Move_Mode
Enumération utilisé dans le template des fonctions qui récupère les listes de mouvement pour modifier...
Definition Piece.hpp:156
@ NORMAL
Dans le cas du mouvement classique on autorise la prise de pièce.
Definition Piece.hpp:161
@ SPLIT
Dans le cas du split on interdit la prise de pièce.
Definition Piece.hpp:167
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.
constexpr TypePiece get_type() const noexcept
Renvoie le type de la piece.
constexpr Color get_color() const noexcept
Renvoie la couleur d'un piece.
TypePiece m_type
Le type de la piece ( KING / QUEEN / ROOK / BISHOP / KNIGHT / PAWN )
Definition Piece.hpp:355
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.
Definition Complex_printer.hpp:9
La structure qui représente une coordonnée sur le plateau.
Definition Coord.hpp:11
Stoque tout les mouvements possibles.
Definition Move.hpp:38