#ifndef CHESSY_MINIMAX_H #define CHESSY_MINIMAX_H #include #include #include "MoveGeneration.h" #include "Evaluate.h" namespace chessy { using MoveValue = float; /*! * \brief conducts a performance test iterating through all positions * up to a specified depth. * * \param out the stream to write info to * \param chessGame the game to iterate through the positions * \param depth how deep to search (in halfmoves) * * \return the number of nodes visited */ size_t perft(std::ostream& out, ChessGame& chessGame, int depth); std::pair miniMax(ChessGame& chessGame, int depth); MoveValue negamaxImplementation(ChessGame& cg, int depth, MoveValue alpha, MoveValue beta); MoveValue quiescence(ChessGame& cg, int maxDepth, MoveValue alpha, MoveValue beta); } #endif // CHESSY_MIrIMAX_H