HooverChessUtils_PgnReader 0.9.0
Loading...
Searching...
No Matches
Namespaces | Functions
chessboard-movegen-all.h File Reference
#include "chessboard-movegen.h"
Include dependency graph for chessboard-movegen-all.h:

Go to the source code of this file.

Namespaces

namespace  hoover_chess_utils
 
namespace  hoover_chess_utils::pgn_reader
 

Functions

template<typename IteratorType , MoveGenType type, typename ParamType , Color turn>
auto hoover_chess_utils::pgn_reader::generateMovesForPawnsTempl (const ChessBoard &board, IteratorType i, ParamType legalDestinations) noexcept -> IteratorType
 Generates legal pawn moves, the actual implementation.
 
template<typename IteratorType , MoveGenType type, typename ParamType >
auto hoover_chess_utils::pgn_reader::generateMovesForPawns (const ChessBoard &board, IteratorType i, ParamType legalDestinations) noexcept -> IteratorType
 Generates legal pawn moves, dispatch for side-to-move.
 
template<typename IteratorType , MoveGenType type, typename ParamType >
auto hoover_chess_utils::pgn_reader::generateMovesForKnight (const ChessBoard &board, IteratorType i, Square sq, ParamType legalDestinations) noexcept -> IteratorType
 Generates legal knight moves.
 
template<typename IteratorType , MoveGenType type, typename ParamType , bool pinned>
auto hoover_chess_utils::pgn_reader::generateMovesForBishop (const ChessBoard &board, IteratorType i, Square sq, ParamType legalDestinations, MoveTypeAndPromotion typeAndPromo) noexcept -> IteratorType
 Generates legal bishop moves for queen or bishop.
 
template<typename IteratorType , MoveGenType type, typename ParamType , bool pinned>
auto hoover_chess_utils::pgn_reader::generateMovesForRook (const ChessBoard &board, IteratorType i, Square sq, ParamType legalDestinations, MoveTypeAndPromotion typeAndPromo) noexcept -> IteratorType
 Generates legal rook moves for queen or rook.
 
template<typename IteratorType >
auto hoover_chess_utils::pgn_reader::generateMovesForKing (const ChessBoard &board, IteratorType i, SquareSet attackedSquares) noexcept -> IteratorType
 Generates legal king moves.
 
template<typename IteratorType >
IteratorType hoover_chess_utils::pgn_reader::generateAllLegalMovesTemplNoCheck (const ChessBoard &board, IteratorType i) noexcept
 Generates all legal moves when not in check.
 
template<typename IteratorType >
IteratorType hoover_chess_utils::pgn_reader::generateAllLegalMovesTemplInCheck (const ChessBoard &board, IteratorType i) noexcept
 Generates all legal moves when in check (but not in double check)
 
template<typename IteratorType >
IteratorType hoover_chess_utils::pgn_reader::generateAllLegalMovesTemplInDoubleCheck (const ChessBoard &board, IteratorType i) noexcept
 Generates all legal moves when in double check.
 
template<MoveGenType type, typename IteratorType >
IteratorType hoover_chess_utils::pgn_reader::generateMovesIterTempl (const ChessBoard &board, IteratorType i) noexcept
 Generates all legal moves for a specific iterator type.
 
template<MoveGenType type>
std::size_t hoover_chess_utils::pgn_reader::generateMovesTempl (const ChessBoard &board, MoveList &moves) noexcept
 Generates all legal moves for a position.
 
template<MoveGenType type>
std::size_t hoover_chess_utils::pgn_reader::getNumberOfLegalMovesTempl (const ChessBoard &board) noexcept
 Returns the number of legal moves for a position.
 
template<MoveGenType type>
bool hoover_chess_utils::pgn_reader::hasLegalMovesTempl (const ChessBoard &board) noexcept
 Determines whether there are any legal moves.