X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmove.cpp;h=d079ee7b56f840b4aaebe61c48066446eb49fe34;hp=2a74aef1ad2378bad5ab1889de2f8c441f7abef2;hb=87f7e99bc4ddeee7ca6b098d73620e2de2b1287e;hpb=c2c185423b13b0227c86009c6006e48e8d258896 diff --git a/src/move.cpp b/src/move.cpp index 2a74aef1..d079ee7b 100644 --- a/src/move.cpp +++ b/src/move.cpp @@ -21,7 +21,6 @@ #include #include -#include "move.h" #include "movegen.h" #include "position.h" @@ -44,10 +43,10 @@ const string move_to_uci(Move m, bool chess960) { if (m == MOVE_NULL) return "0000"; - if (move_is_castle(m) && !chess960) + if (is_castle(m) && !chess960) to = from + (file_of(to) == FILE_H ? Square(2) : -Square(2)); - if (move_is_promotion(m)) + if (is_promotion(m)) promotion = char(tolower(piece_type_to_char(promotion_piece_type(m)))); return square_to_string(from) + square_to_string(to) + promotion; @@ -80,7 +79,7 @@ const string move_to_san(Position& pos, Move m) { if (m == MOVE_NULL) return "(null)"; - assert(move_is_ok(m)); + assert(is_ok(m)); Bitboard attackers; bool ambiguousMove, ambiguousFile, ambiguousRank; @@ -89,7 +88,7 @@ const string move_to_san(Position& pos, Move m) { PieceType pt = type_of(pos.piece_on(from)); string san; - if (move_is_castle(m)) + if (is_castle(m)) san = (move_to(m) < move_from(m) ? "O-O-O" : "O-O"); else { @@ -107,6 +106,10 @@ const string move_to_san(Position& pos, Move m) { { sq = pop_1st_bit(&attackers); + // Pinned pieces are not included in the possible sub-set + if (!pos.pl_move_is_legal(make_move(sq, to), pos.pinned_pieces())) + continue; + if (file_of(sq) == file_of(from)) ambiguousFile = true; @@ -127,7 +130,7 @@ const string move_to_san(Position& pos, Move m) { } } - if (pos.move_is_capture(m)) + if (pos.is_capture(m)) { if (pt == PAWN) san += file_to_char(file_of(from)); @@ -137,7 +140,7 @@ const string move_to_san(Position& pos, Move m) { san += square_to_string(to); - if (move_is_promotion(m)) + if (is_promotion(m)) { san += '='; san += piece_type_to_char(promotion_piece_type(m));