# What chess endgame rules have few or no exceptions?

I don't mean rules like "rooks behind passed pawns" that work a lot but also have a huge number of exceptions. Rather, I mean endgame rules that either have no exceptions, or else a sufficiently small number of exceptions that it's easy to memorise those exceptions.

For example, the rule that "in K+N vs K+P the knight can draw so long as it reaches the square in front of the pawn and can’t be immediately captured by the enemy king" has exactly one exception. The exception relates to the situation in which the pawn is on the seventh rank.

Here White is winning despite Black's knight being immediately in front of the pawn.

``````[FEN "n7/P7/2K5/8/8/8/8/7k w - - 0 1"]
``````

Are there other useful rules with a similarly small number of exceptions?

Here are a few off the top of my head -

In K + B + P vs K endgames, the position is a draw if the pawn is a rook pawn and the queening square is on the opposite color of the bishop.

``````[FEN "7k/8/7P/8/4B1K1/8/8/8 w KQkq - 0 1"]

1. Kg5 Kg8 2. h7+ Kh8 3. Kh5 Kg7 4. Kg5 Kh8
``````

In K + P vs K + Q endgames, when the pawn is on the seventh rank and the king can cover the queening square the game is either a draw or a loss depending on what column the pawn is on. The game is a draw if the pawn is on the a, c, f, or h files and a loss on the b, d, e, g files. There are certain exceptions to this case - the opposing king can be close enough to the queening square or he can advance using discovered checks.

These positions are draws as white can use stalemate tricks:

a file

``````[FEN "1K6/P7/8/8/8/8/2q5/7k w KQkq - 0 1"]
``````

c file

``````[FEN "3K4/2P5/8/8/8/8/2q5/7k w KQkq - 0 1"]
``````

f file

``````[FEN "6K1/5P2/8/8/8/8/2q5/7k w KQkq - 0 1"]
``````

h file

``````[FEN "6K1/7P/8/8/8/8/2q5/7k w KQkq - 0 1"]
``````

There is one exception to the wrong-colored bishop draw:

``````[StartFlipped "0"]
[fen "8/7B/5k1P/8/8/5K2/8/8 w - - 0 0"]

1. Kf4 Kf7 2. Kf5 Kf8 3. Kg6
``````

However if it's Black's move, he draws by attacking the pawn:

``````[StartFlipped "0"]
[fen "8/7B/5k1P/8/8/5K2/8/8 b - - 0 0"]

1... Kg5
``````