Clarify SAN disambiguation in case of a pinned piece
In SAN notation when two pieces of the same type can move to a given destination square, a disambiguation additional info (like starting file) shall be added to the SAN move. If one of the two pieces is pinned, the corresponding move _could_ be illegal and in this case disambiguation is not needed. But to be pinned alone it is not enough to deduce that the move is illegal, for instance in this position: R3rk2/2r6/8/8/8/8/8/K7 b - - 0 1 The move Rc8 is ambiguous although the rook in e8 is pinned and the correct SAN notation should be Rcc8. No functional change.sf_3_base
parent
e1191b35e8
commit
3a836dab59
|
@ -137,7 +137,7 @@ const string move_to_san(Position& pos, Move m) {
|
|||
{
|
||||
Square sq = pop_lsb(&attackers);
|
||||
|
||||
// Pinned pieces are not included in the possible sub-set
|
||||
// If the move is illegal, the piece is not included in the sub-set
|
||||
if (!pos.pl_move_is_legal(make_move(sq, to), pos.pinned_pieces()))
|
||||
continue;
|
||||
|
||||
|
|
Loading…
Reference in New Issue