From Chessprogramming wiki
Sample Position
Horizontal Mirroring
Original
|
Horizontal Mirroring
|
♚ ♘♔ ♗
|
|
♚ ♗ ♔♘
|
|
k7/8/NK2B3/8/8/8/8/8 w - -
|
7k/8/3B2KN/8/8/8/8/8 w - -
|
Flipping & Rotation
Vertical flipping and horizontal mirroring (or vice versa) results in rotation by 180 degrees.
Vertical Flipping
|
180° Rotation
|
♘♔ ♗ ♚
|
|
♗ ♔♘ ♚
|
|
8/8/8/8/8/NK2B3/8/k7 w - -
|
8/8/8/8/8/3B2KN/8/7k w - -
|
Mirroring an 8x8 Board
An 8x8 Board with a rank-file mapping needs to perform an exclusive or with 7 (h1 in LERF) to horizontally mirror square coordinates. A pure 8x8 Board may be mirrored that way in C:
int board[64], sq, s;
for (sq = 0; sq < 64; sq += ++sq & 4) {
s = board[sq];
board[sq] = board[sq^7];
board[sq^7] = s;
}
See alsoExternal LinksReferences