]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Ressurect move.cpp
[stockfish] / src / search.cpp
index 7b7ad2d5885abcde549c1a8b061cb132974645b5..011bec694ff3c52639c8a4a86a74a4515b910f3b 100644 (file)
 #include "evaluate.h"
 #include "history.h"
 #include "misc.h"
+#include "move.h"
 #include "movegen.h"
 #include "movepick.h"
 #include "lock.h"
-#include "san.h"
 #include "search.h"
 #include "timeman.h"
 #include "thread.h"
@@ -161,13 +161,22 @@ namespace {
   // operator<<() that will use it to properly format castling moves.
   enum set960 {};
 
-  std::ostream& operator<< (std::ostream& os, const set960& m) {
+  std::ostream& operator<< (std::ostream& os, const set960& f) {
 
-    os.iword(0) = int(m);
+    os.iword(0) = int(f);
     return os;
   }
 
 
+  // Overload operator << for moves to make it easier to print moves in
+  // coordinate notation compatible with UCI protocol.
+  std::ostream& operator<<(std::ostream& os, Move m) {
+
+    bool chess960 = (os.iword(0) != 0); // See set960()
+    return os << move_to_uci(m, chess960);
+  }
+
+
   /// Adjustments
 
   // Step 6. Razoring
@@ -372,7 +381,7 @@ int64_t perft(Position& pos, Depth depth)
     int64_t sum = 0;
 
     // Generate all legal moves
-    MoveStack* last = generate_moves(pos, mlist);
+    MoveStack* last = generate<MV_LEGAL>(pos, mlist);
 
     // If we are at the last ply we don't need to do and undo
     // the moves, just to count them.
@@ -2007,7 +2016,7 @@ split_point_start: // At split points actual search starts from here
     int t = current_search_time();
 
     //  Poll for input
-    if (data_available())
+    if (input_available())
     {
         // We are line oriented, don't read single chars
         std::string command;
@@ -2665,7 +2674,7 @@ split_point_start: // At split points actual search starts from here
     ss[0].eval = ss[0].evalMargin = VALUE_NONE;
 
     // Generate all legal moves
-    MoveStack* last = generate_moves(pos, mlist);
+    MoveStack* last = generate<MV_LEGAL>(pos, mlist);
 
     // Add each move to the RootMoveList's vector
     for (MoveStack* cur = mlist; cur != last; cur++)