@@ -159,4 +159,5 @@ UndoInfo ChessGame::doMove(const MoveInfo& mi)
void ChessGame::undoMove(const UndoInfo& ui)
{
board = ui.before;
+ this->reversibleHalfMoves--;
}
@@ -23,7 +23,7 @@ size_t Perft::search(void)
};
- Search<decltype(searcher)> search (std::move(searcher), chessGame);
+ Search<decltype(searcher)> search (searcher, chessGame);
search.iterateAll<WHITE_SIDE>(chessGame, depth);
@@ -16,13 +16,13 @@ namespace chessy
template<typename T>
class chessy::Search
- T handler;
+ T& handler;
ChessGame& game;
Board& board;
Bitboard whites;
Bitboard blacks;
public:
- inline Search(T&& handler, ChessGame& game) :
+ inline Search(T& handler, ChessGame& game) :
handler{ handler }, game{ game }, board{ game.getBoard() },
whites{ board.getWhites() }, blacks{ board.getBlacks() } {}