#ifndef SRC_MOVES_H_ #define SRC_MOVES_H_ #include "board/board.hpp" #include std::vector GetLegalMoves(Game *g, bool GenerateQuietMoves = true); std::vector GetPseudoLegalMoves(Game *g, bool GenerateQuietMoves); Position IndexToPosition(int i); void GenerateSlidingMoves(Game *g, int from, const std::array &directions, std::vector &moves, bool GenerateQuietMoves); void GenerateKingMoves(Game *g, int from, std::vector &moves, bool GenerateQuietMoves); void GenerateKnightMoves(Game *b, int from, std::vector &moves, bool GenerateQuietMoves); void GeneratePawnMoves(Game *b, int from, std::vector &moves, bool GenerateQuietMoves); void GenerateCastlingMoves(int from, Game *g, std::vector &moves); bool IsSquareAttacked(Game *g, Position square, bool byWhite); GameState GetNewGameState(Game *g); #endif /* SRC_MOVES_H_ */