# Nolot

Nolot is a chess test suite with 11 very difficult positions from real games. They were compiled by Pierre Nolot (French:) for the French chess magazine Gambisco and posted on the rec.games.chess Usenet group in 1994. Some of these positions were particularly hard to solve for chess engines at the time.

## Problem 1

FEN: r3qb1k/1b4p1/p2pr2p/3n4/Pnp1N1N1/6RP/1B3PP1/1B1QR1K1 w - - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
26.Nxh6!! c3 (26... Rxh6 27.Nxd6 Qh5 (best) 28.Rg5! Qxd1 29.Nf7+ Kg8 30.Nxh6+ Kh8 31.Rxd1 c3 32.Nf7+ Kg8 33.Bg6! Nf4 34.Bxc3 Nxg6 35.Bxb4 Kxf7 36.Rd7+ Kf6 37.Rxg6+ Kxg6 38.Rxb7 ±) 27.Nf5! cxb2 28.Qg4 Bc8 (28... g6!? 29.Kh2! 29.Qd7 30.Nh4 Bc6 31.Nc5! dxc 32.Rxe6 Nf6 33.Nxg6+ Kg7 34.Qg5 Nbd5 35.Ne5 Kh8 36.Nxd7 ±) 29.Qh4+ Rh6 30.Nxh6 gxh6 31.Kh2! Qe5 32.Ng5 Qf6 33.Re8 Bf5 34.Qxh6 (missing a mate in 6: 34.Nf7+ Qxf7 35.Qxh6+ Bh7 36.Rxa8 Nf6 37.Rxf8 Qxf8 38.Qxf8+ Ng8 39.Qg7#) 34...Qxh6 35.Nf7+ Kh7 36.Bxf5+ Qg6 37.Bxg6+ Kg7 38.Rxa8 Be7 39.Rb8 a5 40.Be4+ Kxf7 41.Bxd5+ 1–0
The best Novag computer, the Diablo 68000, finds 26. Nxh6 after seven and a half months (Pierre Nolot has let it run on the position for 14 months and one day, until a power failure stopped an analysis of over 80,000,000,000 nodes.) but for wrong reasons: it evaluates white's position as inferior and thinks this move would enable it to draw.
Today Gambit Tiger 2.0 for example can find it pretty fast: Most free engines running on 64-bit processors in 2010 could solve this problem and the others in a few seconds.
1.Qd4 c3 2.Bxc3 Nxc3 3.Qxb4 Nxe4 4.Qxb7 Rb8 5.Qxb8 Qxb8 6.Bxe4 d5 7.Rb1
 μ (-1.20) Depth: 12 00:00:09 6055 kN
1.Nxh6 c3 2.Nf5 cxb2 3.Qg4 Rb8 4.Nxg7 Rg6 5.Qxg6 Qxg6 6.Rxg6 Bxg7 7.Nxd6
 ³ (-0.48) Depth: 12 00:00:21 14368 kN
1.Nxh6 c3 2.Nf5 cxb2 3.Qg4 Rc8 4.Nxg7 Rg6 5.Nxe8 Rxg4 6.Rxg4 Rxe8 7.Rg6
 μ (-0.74) Depth: 13 00:00:55 38455 kN
1.Ne3 Rxe4 2.Bxe4 Qxe4 3.Nxd5 Qxd5 4.Qc1 Qf5 5.Qxh6+ Qh7 6.Qe6 Nd3 7.Re2 Nxb2 8.Rxb2
 ³ (-0.58) Depth: 13 00:01:30 62979 kN
1.Ne3 Rxe4
 ³ (-0.58) Depth: 14 00:02:02 84941 kN
1.Ne3 Nxe3 2.Rexe3 Bxe4 3.Qg4 Rg6 4.Qxe4 Qxe4 5.Bxe4 Rxg3 6.Rxg3 d5 7.Bf5 Re8 8.Bc3
 ³ (-0.30) Depth: 15 00:03:05 128968 kN
1.Nxh6
 ² (0.32) Depth: 15 00:07:58 350813 kN
With the next ply showing a clear advantage.
Stockfish 14dev 64bit 4CPU running on 2020 hardware recognises the significance of Nxh6!! in 1 second. Stockfish_21092606_x64_avx2: NNUE evaluation using nn-13406b1dcbe0.nnue enabled.

## Problem 2

FEN: r4rk1/pp1n1p1p/1nqP2p1/2b1P1B1/4NQ2/1B3P2/PP2K2P/2R5 w - - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
22.Rxc5!! Nxc5 23.Nf6+ Kh8 24.Qh4 Qb5+ (computers think there is perpetual check here, but...) 25.Ke3! 25... h5 26.Nxh5 Qxb3+ (26... d5+ 27.Bxd5 Qd3 28.Kf2 Ne4+ 29.Bxe4 Qd4+ 30.Kg2 Qxb2+ 31.Kh3 ±) and White won in 41 moves.
Today Deep Junior 8.ZX for example finds it very quickly (around 1 minute):
1.Kd1 Rac8 2.Bh6 Qb5 3.Rc3 Qf1+ 4.Kc2 Rc6 5.Bxf8
 −+ (-2.11) Depth: 12 00:00:04 10422 kN
1.Nxc5 Nxc5 2.Rxc5 Qxc5 3.e6 Rae8 4.e7 Nc8 5.Kf1 Nxd6 6.Bf6 b5
 −+ (-2.10) Depth: 12 00:00:14 25054 kN
1.Bf6!
 μ (-1.35) Depth: 12 00:00:17 34601 kN
1.Bf6 Qb5+ 2.Ke1 Bb4+ 3.Kf2 Bc5+
 = (0.00) Depth: 12 00:00:20 34601 kN
1.Bf6 Qb5+ 2.Ke1 Nxf6 3.Nxf6+ Kg7 4.Nh5+ gxh5 5.Qf6+ Kg8 6.Qg5+ Kh8 7.Qf6+
 = (0.00) Depth: 15 00:01:01 130544 kN
1.Rxc5!
 = (0.15) Depth: 15 00:01:12 145875 kN
1.Rxc5 Nxc5 2.Nf6+ Kh8 3.Qh4 Qb5+ 4.Ke3 h5 5.Nxh5 Qd3+ 6.Kf2 Ne4+ 7.fxe4 Qd4+ 8.Kf1 Qd3+ 9.Ke1 Qb1+ 10.Bd1
 ± (2.18) Depth: 15 00:01:18 145875 kN
Stockfish 14dev 64bit 4CPU running on 2020 hardware recognises the significance of Rxc5!! in 1 second.
Stockfish_21092606_x64_avx2: NNUE evaluation using nn-13406b1dcbe0.nnue enabled.
Blacks 22. .. Nxc5 is suboptimal and leads faster mate

## Problem 3

FEN: r2qk2r/ppp1b1pp/2n1p3/3pP1n1/3P2b1/2PB1NN1/PP4PP/R1BQK2R w KQkq - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
12.Nxg5!! Bxd1 13.Nxe6 Qb8 14.Nxg7+!! Kf8 15.Bh6! Bg4 16.0-0+ Kg8 17.Rf4 ±
White wins with a queen sac but black has defensive resources.
Stockfish 8 64bit 3CPU running on 2016 hardware recognizes the significance of Nxg5!! in 55 seconds.
Stockfish 14 dev (Stockfish_21092606_x64_avx2) 64bit 4CPU running on 2020 hardware recognizes the significance of Nxg5!! in 1 second.
NNUE evaluation using nn-13406b1dcbe0.nnue enabled.
Blacks 14 .. Kf8 is suboptimal and leads loss fast
41/68 06:31 3269727k 8350k +9,28 Bh6 Kg8 Rxd1 Bf8 N3h5 Bxg7 Nxg7 Qf8 Nf5 Ne7 Bxf8 Nxf5 Bxf5 Rxf8 Be6+ Kg7 Rd3 Rf4 Bxd5 c6 Rg3+ Kf8 Rf3 Rxf3 Bxf3 Kg7 Rf1 Re8 Be4 Re6 Ke2 a5 Ke3 Rh6 h3 a4 Kf4 Re6 h4 Re8 Ke3 h6 h5 Rf8 Rxf8 Kxf8

## Problem 4

FEN: r1b1kb1r/1p1n1ppp/p2ppn2/6BB/2qNP3/2N5/PPP2PPP/R2Q1RK1 w kq - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
10.Nxe6!! Qxe6 11.Nd5 Kd8 12.Bg4 Qe5 13.f4 Qxe4 (13...Qxb2 stronger but not sufficient: 14.Bxd7 Bxd7 15.Rb1 Qa3 16.Nxf6 Bb5 17.Qd4 Qc5 18.Rfd1 ±) 14.Bxd7 Bxd7 15.Nxf6 gxf6 16.Bxf6+ Kc7 17.Bxh8 and Black resigned on move 27.
Stockfish 14dev 64bit 4CPU running on 2020 hardware recognises the significance of Nxe6!! in 1 second. Stockfish_21092606_x64_avx2: NNUE evaluation using nn-13406b1dcbe0.nnue enabled.

## Problem 5

FEN: r2qrb1k/1p1b2p1/p2ppn1p/8/3NP3/1BN5/PPP3QP/1K3RR1 w - - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
21.e5!! dxe5 22.Ne4! Nh5 23.Qg6!? (stronger is 23.Qg4!! Nf4 24.Nf3 Qc7 25.Nh4 ± ) 23...exd4? (23...Nf4 24.Rxf4! exf4 25.Nf3! Qb6 26.Rg5!! covering b5 and threatening Nf6 or Ne5-f7+) 24.Ng5 1−0
Stockfish 8 64bit 3CPU running on 2016 hardware recognises the significance of e5!! in 5 seconds. Stockfish 12 dev (Stockfish_20062212_x64_modern) 64bit 1CPU running on 2016 hardware recognizes the significance of e5!! in 11 seconds.
25/42 00:06 7 963k 1309k +6,93 e5 Nh5 Ne4 dxe5 Nf3 Nf4 Qg4 Qc7 Nh4 Bc6 Nf6 g5 Rxf4 exf4 Qh5 Qe7 Ng6+ Kg7 Nxe7 Rxe7 Ng4
37/62 03:12 298 083k 1545k +10,70 e5 Ng4 Qxg4 Qg5 Qh3 Qxe5 Nde2 g5 Rxf8+ Kg7 Rff1 Rf8 Re1 Qf5 Qg3 Rad8 Nd4 Qf4 Nxe6+ Bxe6 Rxe6 Qxg3

## Problem 6

FEN: rnbqk2r/1p3ppp/p7/1NpPp3/QPP1P1n1/P4N2/4KbPP/R1B2B1R b kq - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
13... axb5!! offers an exchange to keep the white queen out of play. 14.Qxa8 Bd4 15.Nxd4 cxd4 16.Qxb8 0-0! 17.Ke1 Qh4 18.g3 Qf6 19.Bf4 g5? (Ivanchuk found 19...d3! during post-game analysis.) 20.Rc1 exf4 21.Qxf4 Qd4 22.Rd1 bxc4 23.e5 Qc3+ 24.Rd2 Re8 25.Bxd3 cxd3 −+
Tasc R30 finds 19... d3! in 2 1/2 hours. 19... Bf5!! is even stronger than 19... d3.
Position is already lost at 19... d3 +8.00 for black, ... Bf5 not much better
Stockfish 14dev 64bit 4CPU running on 2020 hardware recognises the significance of axb5!! in 1 second. Stockfish_21092606_x64_avx2: NNUE evaluation using nn-13406b1dcbe0.nnue enabled.

## Problem 7

FEN 1r1bk2r/2R2ppp/p3p3/1b2P2q/4QP2/4N3/1B4PP/3R2K1 w k - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
1.Rxd8+!! Rxd8 (1...Kxd8 2.Ra7! Qe2 3.Qd4+ Ke8 4.h3 Qe1+ 5.Kh2 Rd8 6.Qc5 Qh4 7.Ba3 Rd7 8.Ra8+ Rd8 9.g3 1−0) 2.Ba3 Qe2 3.h3! Bd7 (better but still losing was 3...Qe1+ 4.Kh2 Qa5 5.Re7+ Kf8 6.Rd7+ Kg8 7.Bb4 Rxd7 8.Bxa5 ±) 4.Nf5! Qd1+ 5.Kh2 f6 6.exf6 1−0
The exchange sacrifice keeps control of the 7th rank. Genius 2 does better than the R30 on this one, but needs more than a month to find 1.Rxd8!!, even on a 90 MHz Pentium.
Fritz 9 plays 1.Rxd8!! in 2 seconds.
Stockfish 8 64bit 3CPU running on 2016 hardware recognises the significance of Rxd8!! in 8 seconds.

## Problem 8

FEN r3rbk1/ppq2ppp/2b1pB2/8/6Q1/1P1B3P/P1P2PP1/R2R2K1 w - - 0 24
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
24.Bxh7+!! is natural, but Black has some defensive resources. 24...Kxh7 25.Qh5+ Kg8 26.Rd4! gxf6 27.Rg4+ Bg7 28.Qh6 Kf8 29.Rxg7! Rac8 (computers prefer 29...Be4 which also loses after 30.Rg4+ Ke7 31.Rxe4 Rad8 32.c4 Qa5 33.Rae1 ±) 30.Qh7 b5 31.Rd1 Bd5 32.c4 bxc4 33.bxc4 1−0.
Stockfish 15dev 64bit 4CPU running on 2020 hardware recognises the significance of Bxh7+!! under 1 second (Stockfish_23010111_x64_avx2).
The position is probably drawn with perfect play
The suggested move 26...gxf6 is blunder which loses

## Problem 9

FEN r4r1k/4bppb/2n1p2p/p1n1P3/1p1p1BNP/3P1NP1/qP2QPB1/2RR2K1 w - - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
1.Ng5!! hxg5 2.hxg5! (with the idea of 3. Nf6!!) and now:
A. 2...Rac8 3.Nf6!!
A1. 3...gxf6 which loses if white plays precisely: 4.gxf6 and now:
A1a. 4...Nxd3? 5.Rxd3 Bxd3? 6.Qh5+ is mate in 4.
A1b. 4...Re8 5.Rxc5! (5.Qh5!? Kg8 6.Rxc5! Bg6! 7.Qh4 Bxc5 8.Be4 Ne7 9.Kg2! is winning as well.) 5...Bxc5 6.Qh5 with the idea 7.Be4 and White is winning.
A1c. 4...Bg6 5.Bxc6 Bxf6 (6...Rxc6 6.fxe7 Re8 7.Bg5 f5 8.Bf6+ Kg8 9.Qd2 is winning) 7.Rxc5 Be7 8.Rcc1 and White is better.
A2. 3...Nb8 4.Bd5!! (to block d5 so White can play Kg2 without having to deal with ...Qd5+; 4.Qh5!? Bxf6 5.gxf6 Nbd7 (5...gxf6 6.Rxc5! Rxc5 7.Be4 f5 8.Kg2! Rg8 9.Rh1 Rg7 10.Bh6 Nd7 11.Bxg7+ Kxg7 12.Qxh7+ Kf8 13.Qh6+ Ke8 14.Qg5 is winning.) 6.Bb7 Nxb7 7.Rxc8 Rxc8 8.Qxf7 Rg8 9.Qxd7 with advantage for White.) 4...exd5 (4...Qxd5 5.Nxd5 exd5 6.Kg2! should win as well.) 5.Kg2! Bxf6 6.Rh1! Bg5 7.Qh5 Bh6 8.Bxh6 with mate to follow.
B. 2...Rfc8 3.Nf6!!
B1. 3...gxf6 4.exf6! (4.gxf6 Nxd3 (4...Bf8 5.Rxc5! Bxc5 6.Qh5 Kg8 7.Be4 Bxe4 8.dxe4 wins for White.) 5.Rxd3 Bxd3 6.Qxd3 Nxe5! 7.Rxc8+ Rxc8 8.Bxe5 Qa1+ is unclear, probably a draw.) and now:
B1a. 4...Bf8? 5.Rxc5! Bxc5 6.Qh5 Kg8 7.Be4 Bxe4 8.dxe4 is winning for White, e.g. 8...Qa4 9.Rc1 Ne7 10.fxe7 Qe8 11.Kg2! f6 12.Qh6.
B1b. 4...Nxd3 5. Rxd3 Bf8! (6...Bxd3 6. Qxd3 wins for White.) 6.Rxc6 (6.Bxc6!? Rxc6 7.Rxc6 Qd5 8.Rc7 is better for White.) 6...Rxc6 7.Bxc6 Rd8 8.Rd1 is also favorable for White.
B2. 3...Bg6 is probably Black's best try:
B2a. 4.Bxc6 gxf6 5.exf6 Bf8! 6.Bxa8 Rxa8 7.Rc4 and Black seems to hold.
B2b. 4.Qg4 gxf6 5.gxf6 Nxd3 (5...Bf8? 6.Qh3+ Kg8 7.Bh6! is winning) 6.Rxd3 Bf8 7.Rdd1 is unclear.
Pierre Nolot seems to have repudiated this problem.
As first move Nxh6 is much better than Ng5 Stockfish_20042208_x64_modern:
although according to SF15 dev (Stockfish_23010111_x64_avx2) after forcing moves suggested by Pierre Nolot
the position is still winning

## Problem 10

FEN r1b2rk1/1p1nbppp/pq1p4/3B4/P2NP3/2N1p3/1PP3PP/R2Q1R1K w - - 0 15
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
15.Rxf7!! Rxf7 16.Bxf7 Kxf7 17.Qh5+ Kg8 16.Qe8+ Bf8 19.Nd5 Qxd4 20.Ne7+ Kh8 21.Rf1 Qf6 22.Rxf6 and white won on move 29.
Stockfish 8 64bit 3CPU running on 2016 hardware recognises the significance of Rxf7!! in 9 seconds.
Stockfish 15dev 64bit 4CPU running on 2020 hardware recognises the significance of Rxf7!! under 1 second (Stockfish_23010111_x64_avx2).

## Problem 11

FEN r1b3k1/p2p1nP1/2pqr1Rp/1p2p2P/2B1PnQ1/1P6/P1PP4/1K4R1 w - - 0 1
| | a | b | c | d | e | f | g | h | |
| 8 | | | | | | | | | 8 |
| 7 | | | | | | | | | 7 |
| 6 | | | | | | | | | 6 |
| 5 | | | | | | | | | 5 |
| 4 | | | | | | | | | 4 |
| 3 | | | | | | | | | 3 |
| 2 | | | | | | | | | 2 |
| 1 | | | | | | | | | 1 |
| | a | b | c | d | e | f | g | h | |
Neishtadt's "Leçons de tactique" gives: "1.Rxh6!! the g pawn will be helped by the h pawn 1...Nxh6 (1...Rxh6 2.Bxf7+ Kxf7 3.g8Q+) 2.Qg5 Nf7 3.Qd8+!! Nxd8 4.h6 and there is nothing to prevent h6-h7+ 1−0"
But 4...Qd4!! 5.h7+ Kf7 6.g8Q+ Ke7 7.h8Q Kd6 8.Rg7 Qxd2!! 9.Qxd8 Qd1+! (if 9...Kc5? 10.Rxd7 Bxd7 11.Qxa8 Kb4 12.Qh1! and White wins. Not 12.Qxa7? Qe1+ 13.Kb2 Qc3+ with perpetual check.) 10.Kb2 Qd4+ 11.Ka3 Qc5+ 12.b4 Qe3+ 13.Bd3 Qc1+ 14.Kb3 Qb1+ 15.Kc3 Qe1+ 1/2 as White cannot escape the black checks.
Stockfish 8 64bit 3CPU running on 2016 hardware recognises the drawing significance of Rxh6!! in 7 seconds.