Nicolas Winkler 7 yıl önce
ebeveyn
işleme
ded1cc0839
3 değiştirilmiş dosya ile 4 ekleme ve 3 silme
  1. 1 0
      src/ChessGame.cpp
  2. 1 1
      src/Minimax.cpp
  3. 2 2
      src/Search.h

+ 1 - 0
src/ChessGame.cpp

@@ -159,4 +159,5 @@ UndoInfo ChessGame::doMove(const MoveInfo& mi)
 void ChessGame::undoMove(const UndoInfo& ui)
 {
     board = ui.before;
+    this->reversibleHalfMoves--;
 }

+ 1 - 1
src/Minimax.cpp

@@ -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);
 

+ 2 - 2
src/Search.h

@@ -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() } {}