# Vertical Flipping

Jump to: navigation, search

Home * Chess * Position * Vertical Flipping

Acrobatic Flip [1]

Vertical Flipping mirrors all pieces along the horizontal axis between the 4th and 5th rank. Opposed to color flipping it does not swap the piece colors and side to move, and therefor with respect to the front span of pawns, is only applicable in pawn-less endgames with castling no longer possible, and results in an equivalent position with identical evaluation and same number of attacks and moves. Along with horizontal and/or diagonal mirroring, vertical flipping is used in pawn-less endgame tablebases to restrict a white king to the 10 squares of the a1-d4-d1 triangle of the board.

# Sample Position

Original Vertical Flip Color Flip
                                                                                            ♚               ♘♔  ♗
                                                                                                                                    ♘♔  ♗           ♚
                                                                                                                                    ♞♚  ♝           ♔
k7/8/NK2B3/8/8/8/8/8 w - - 8/8/8/8/8/NK2B3/8/k7 w - - 8/8/8/8/8/nk2b3/8/K7 b - -

# Flipping an 8x8 Board

An 8x8 Board with a rank-file mapping, needs to perform an exclusive or with 56 (A8 in LERF) to vertically flip square coordinates. A pure 8x8 Board may be vertically flipped that way in C:

```int board[64], sq, s, f;

for (sq = 0; sq < 32; ++sq) {
s = board[sq];
board[sq] = board[sq^56];
board[sq^56] = s;
}
```