Fix relative_rank for maximum rank != 2^n
authorianfab <ianfab@users.noreply.github.com>
Tue, 24 Jul 2018 20:27:05 +0000 (22:27 +0200)
committerianfab <ianfab@users.noreply.github.com>
Tue, 24 Jul 2018 20:27:05 +0000 (22:27 +0200)
No functional change for 8x8 boards.

src/types.h

index f127211..aac7022 100644 (file)
@@ -447,7 +447,7 @@ constexpr Square relative_square(Color c, Square s) {
 }
 
 constexpr Rank relative_rank(Color c, Rank r, Rank maxRank = RANK_8) {
-  return Rank(r ^ (c * maxRank));
+  return Rank(c == WHITE ? r : maxRank - r);
 }
 
 constexpr Rank relative_rank(Color c, Square s, Rank maxRank = RANK_8) {