# TCEC Season 20

The 20th season of the Top Chess Engine Championship began on 1 December 2020 and ended on 1 February 2021. The defending champion was Stockfish, which defeated Leela Chess Zero in the previous season's superfinal. The season 20 superfinal was a rematch between the same two engines. Stockfish once again came out ahead, winning by 6 games (+14 -8 =78).

## Overview

TCEC underwent some major changes for season 20. There were a plethora of new engines participating in the Qualification League for the first time. Furthermore, two major new rules changes went into effect:
* Engines are no longer disqualified if they crash three times, although crashes are still treated as losses.
* The "TCEC win rule", which stated that games are adjudicated as won if both engines showed a +10 eval or greater for 5 consecutive moves, is abolished. Instead, games are played till mate, 3-fold repetition, the 50-move rule is reached, a Syzygy 6-piece tablebase position is reached, or if the "TCEC draw rule" kicks in.
The decision to treat crashes differently also meant that the number of crashes was no longer used for tiebreaks. Furthermore, r-mobility was lifted to the second tiebreak condition.
Finally, the advent of NNUE in the previous season led to several engines that implemented NNUE showing quantum leaps in strength. To keep the participant lineup unique, TCEC implemented guidelines for engines that utilize NNUE: one is allowed to use basic NNUE code freely, but modifications are encouraged, and all training data should be generated from the engine's own search and eval code.

## Qualification League

When the qualification league started, several engines had not responded to the invitations sent by TCEC. As a result, the number of promoting engines increased from the original two to four.
The qualification league contained mostly engines playing in TCEC for the first time. New entrant Seer wound up winning the league easily, scoring 8 wins and conceding none. Fellow new entrant Halogen finished second, a point behind, after losing the head-to-head against Seer. Koivisto had the most polarized performance: in its 12 games, it won five times but crashed the remaining seven games. The result left it half a point behind A0lite and just out of the promotion spots.
Koivisto's polarized performance led TCEC to implement an exceptional ruling: although updates are not usually allowed between the lower leagues, if an engine promotes, it would be allowed to fix any crash-causing bugs.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Seer | 12 | 8 | 4 | 0 | 10 | Advance to League 4 |
| 2 | Halogen | 12 | 8 | 2 | 2 | 9 | Advance to League 4 |
| 3 | MrBob | 12 | 6 | 4 | 2 | 8 | Advance to League 4 |
| 4 | A0lite | 12 | 3 | 5 | 4 | 5.5 | Advance to League 4 |
| 5 | Koivisto | 12 | 5 | 0 | 7 | 5 | |
| 6 | Cheese | 12 | 2 | 2 | 8 | 3 | |
| 7 | Stash | 12 | 1 | 1 | 10 | 1.5 | |

### Results

Engines play each other twice, once as white and once as black.
| White \ Black | AZL | CHS | HAL | KOI | MRB | SEE | STA |
| A0lite | — | 1–0 | 0–1 | 0–1 | 0.5–0.5 | 0.5–0.5 | 1–0 |
| Cheese | 0.5–0.5 | — | 1–0 | 0–1 | 0–1 | 0–1 | 0.5–0.5 |
| Halogen | 1–0 | 1–0 | — | 1–0 | 1–0 | 0–1 | 1–0 |
| Koivisto | 1–0 | 0–1 | 0–1 | — | 0–1 | 0–1 | 1–0 |
| MrBob | 0.5–0.5 | 1–0 | 0.5–0.5 | 1–0 | — | 0.5–0.5 | 1–0 |
| Seer | 0.5–0.5 | 1–0 | 0.5–0.5 | 1–0 | 1–0 | — | 1–0 |
| Stash | 0–1 | 1–0 | 0–1 | 0–1 | 0–1 | 0–1 | — |

## League 4

Similar to the qualification league, the number of engines promoting from League 4 was increased to three because of the lack of response from Gogobello.
QL winner Seer won League 4 with a dominating performance, scoring 8 wins and only losing one game. It further scored a win against 2nd-placed Weiss, as well as defeating tail-enders A0lite, Bagatur, and FabChess 2-0. Weiss remained in contention until the very last round in spite of its loss to Seer. It won 9 games, but also lost three, to finally finish half a point behind. Fourth-place finisher Monolith scored a win against Weiss and third-place finisher Tucano, but nonetheless finished behind Tucano because of Tucano's strong performance against the bottom half of the field: Tucano scored +5 against the four bottom-placed engines, while Monolith was only even. With three promotion slots only, Tucano squeezed past Monolith, half a point ahead.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Seer | 18 | 8 | 9 | 1 | 12.5 | Advance to League 3 |
| 2 | Weiss | 18 | 9 | 6 | 3 | 12 | Advance to League 3 |
| 3 | Tucano | 18 | 6 | 9 | 3 | 10.5 | Advance to League 3 |
| 4 | Monolith | 18 | 4 | 12 | 2 | 10 | |
| 5 | Halogen | 18 | 3 | 13 | 2 | 9.5 | |
| 6 | ChessFighter | 18 | 2 | 14 | 2 | 9 | |
| 7 | FabChess | 18 | 4 | 8 | 6 | 8 | |
| 8 | MrBob | 18 | 1 | 13 | 4 | 7.5 | |
| 9 | A0lite | 18 | 1 | 11 | 6 | 6.5 | |
| 10 | Bagatur | 18 | 1 | 7 | 10 | 4.5 | Relegate to QL |

### Results

Engines play each other twice, once as white and once as black.
| White \ Black | AZL | BAG | CHE | FAB | HAL | MON | MRB | SEE | TUC | WEI |
| A0lite | — | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0–1 | 0.5–0.5 | 0.5–0.5 |
| Bagatur | 0.5–0.5 | — | 0–1 | 0–1 | 0.5–0.5 | 0.5–0.5 | 1–0 | 0–1 | 0–1 | 0–1 |
| ChessFighter | 0.5–0.5 | 0.5–0.5 | — | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0–1 |
| FabChess | 1–0 | 1–0 | 0.5–0.5 | — | 0.5–0.5 | 1–0 | 0.5–0.5 | 0–1 | 0.5–0.5 | 0–1 |
| Halogen | 1–0 | 0.5–0.5 | 0.5–0.5 | 1–0 | — | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 1–0 | 0–1 |
| Monolith | 0–1 | 1–0 | 0.5–0.5 | 1–0 | 0.5–0.5 | — | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 1–0 |
| MrBob | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | — | 0–1 | 0.5–0.5 | 1–0 |
| Seer | 1–0 | 1–0 | 0–1 | 1–0 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | — | 0.5–0.5 | 1–0 |
| Tucano | 1–0 | 1–0 | 0.5–0.5 | 1–0 | 1–0 | 0–1 | 1–0 | 0.5–0.5 | — | 0.5–0.5 |
| Weiss | 1–0 | 1–0 | 1–0 | 0.5–0.5 | 0.5–0.5 | 0.5–0.5 | 1–0 | 0.5–0.5 | 1–0 | — |

## League 3

| | 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 | |
Wielding new NNUE evaluation functions, Minic and Nemorino finished comfortably above the competition in first and second place. The two engines tied in points - Nemorino had one fewer win, but also lost no games - and the head-to-head score was even as well. The tie was eventually broken by r-mobility, the first time this criterion was used. Nemorino wound up ahead. r-mobility also broke the tie between third-placed Seer, fourth-placed Tucano and fifth-placed Combusken, this time causing Seer to promote. The three engines, along with six-placed Weiss, were very close with each other throughout the league. Seer threw away one game against Weiss (diagram), who also scored a win against Combusken. However, Weiss lost both games against Nemorino, and was only even against Counter, Topple and Pirarucu. This caused Weiss to eventually finish sixth, half a point behind its other three rivals.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Nemorino | 18 | 7 | 11 | 0 | 12.5 | Advance to League 2 |
| 2 | Minic | 18 | 8 | 9 | 1 | 12.5 | Advance to League 2 |
| 3 | Seer | 18 | 5 | 11 | 2 | 10.5 | Advance to League 2 |
| 4 | Tucano | 18 | 5 | 11 | 2 | 10.5 | |
| 5 | Combusken | 18 | 7 | 7 | 4 | 10.5 | |
| 6 | Weiss | 18 | 6 | 8 | 4 | 10 | |
| 7 | Counter | 18 | 2 | 11 | 5 | 7.5 | |
| 8 | Topple | 18 | 4 | 7 | 7 | 7.5 | |
| 9 | Pirarucu | 18 | 1 | 10 | 7 | 6 | |
| 10 | Marvin | 18 | 0 | 5 | 13 | 2.5 | Relegate to L4 |

## League 2

After an update before the start, League 3 winner Nemorino won League 2, scoring 8 wins and only losing one game. Second place was closely contested, with eventual third-place finisher Vajolet getting whitewashed by both Nemorino and fourth-placed Pedone, but dominating the bottom half of the table. Both Vajolet and Defenchess managed to finish a point ahead of Pedone, but r-mobility tiebreaks had to be used to decide Defenchess as the promoting engine.
At the other end of the table, in a surprising reversal of fortunes, fellow promoted engine Minic, which had finished level on points with Nemorino in League 3, suffered 6 losses with only one win to finish in the relegation zone. r-mobility tiebreaks then condemned Minic to relegation, with the third promoted engine Seer finishing just above Minic in spite of not winning any games.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Nemorino | 18 | 8 | 9 | 1 | 12.5 | Advance to League 1 |
| 2 | Defenchess | 18 | 6 | 10 | 2 | 11 | Advance to League 1 |
| 3 | Vajolet | 18 | 8 | 6 | 4 | 11 | |
| 4 | Pedone | 18 | 7 | 6 | 5 | 10 | |
| 5 | Winter | 18 | 5 | 9 | 4 | 9.5 | |
| 6 | Fritz | 18 | 3 | 12 | 3 | 9 | |
| 7 | Arasan | 18 | 4 | 9 | 5 | 8.5 | |
| 8 | Seer | 18 | 0 | 13 | 5 | 6.5 | |
| 9 | Minic | 18 | 1 | 11 | 6 | 6.5 | Relegate to L3 |
| 10 | Wasp | 18 | 1 | 9 | 8 | 5.5 | Relegate to L3 |

## League 1

A new, high-bias opening book led to a very bloody League 1, as engine after engine took turns to win an opening. By the end of the league there had been 13 game pairs in which engines traded wins. Nonetheless, there were also a lot of decisive game pairs, and every engine lost at least one opening. When the dust settled Ethereal finished first, two points ahead of rofChade and Igel. rofChade lost both openings to Ethereal, but beat Nemorino and Defenchess twice. Comparatively, Igel won both openings against Ethereal, but also lost both openings to Xiphos, eventually missing out on promotion to rofChade on r-mobility tiebreaks.
At the other end of the table, Defenchess was quickly left behind, but the last relegation spot was closely contested, with only one point separating four engines. Ultimately Nemorino was relegated.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Ethereal | 28 | 11 | 13 | 4 | 17.5 | Advance to Premier Division |
| 2 | rofChade | 28 | 11 | 9 | 8 | 15.5 | Advance to Premier Division |
| 3 | Igel | 28 | 9 | 13 | 6 | 15.5 | |
| 4 | SlowChess | 28 | 8 | 12 | 8 | 14 | |
| 5 | RubiChess | 28 | 9 | 10 | 9 | 14 | |
| 6 | Xiphos | 28 | 7 | 14 | 7 | 14 | |
| 7 | Nemorino | 28 | 6 | 14 | 8 | 13 | Relegate to L2 |
| 8 | Defenchess | 28 | 3 | 11 | 14 | 8.5 | Relegate to L2 |

## Premier Division

A high-bias opening book, similar to that used in League 1, meant that Premier Division also saw many decisive games. However, many of the stronger engines were able to defend when they had the black pieces while winning game after game with the white pieces. Defending champion Stockfish cruised to an early lead when it not only defended with black successfully, but even won two games with black, against Scorpio and rofChade. It further won an opening against season 19 runner-up Leela Chess Zero in round two. As the division progressed, however, Leela kept up a relentless chase: at the end of the third round robin, it had won all but two games it played with white, and narrowed the gap further by winning an opening against Stockfish. Leela finally caught Stockfish in the fourth round robin when Stockfish lost with black against Stoofvlees. Behind for the first time, Stockfish kept things interesting with a streak of wins against rofChade, Scorpio, Ethereal, and the reverse game against Stoofvlees. It came down to the final game between Stoofvlees and Leela, which Leela needed to hold with the black pieces. This would have let it tie Stockfish on points, and win the division because it had better r-mobility tiebreaks. It successfully managed to draw, allowing Leela to win the Premier Division for the second time (after TCEC Season 17).
For the other contestants, traditional powerhouse Komodo played with a NNUE evaluation function for the first time. The effect was immediately apparent, as after flirting with relegation in previous seasons it finished solidly third this season, well behind Stockfish and Leela but ahead of AllieStein and Stoofvlees. Komodo was also the only engine other than Stockfish to win a game with the black pieces. AllieStein was the only engine to play without an update from the previous season, but still managed to finish fourth. Scorpio and Ethereal fought a close battle to avoid relegation. Scorpio blundered a few mate-in-ones due to an apparent bug in its code, but scored a head-to-head win, and was also able to draw two more games against AllieStein than Ethereal. It finally finished sixth, 1.5 points clear of the relegation zone. rofChade, the only engine playing without neural network-based eval, finished solidly last without winning a single opening.

### League table

| Pos | Engine | Pld | W | D | L | Pts | Qualification |
| 1 | Leela Chess Zero | 56 | 24 | 28 | 4 | 38 | Advance to Superfinal |
| 2 | Stockfish | 56 | 24 | 28 | 4 | 38 | Advance to Superfinal |
| 3 | KomodoDragon | 56 | 20 | 25 | 11 | 32.5 | |
| 4 | AllieStein | 56 | 15 | 32 | 9 | 31 | |
| 5 | Stoofvlees | 56 | 15 | 24 | 17 | 27 | |
| 6 | ScorpioNN | 56 | 4 | 34 | 18 | 21 | |
| 7 | Ethereal | 56 | 6 | 27 | 23 | 19.5 | Relegate to L1 |
| 8 | rofChade | 56 | 4 | 26 | 26 | 17 | Relegate to L1 |

## Superfinal

Stockfish won the superfinal. Jeroen Noomen, who writes the opening book used, decided to order the openings such that the most balanced openings (as determined by older versions of Stockfish/Leela on weaker hardware) are played first. As a result, the first half of the superfinal saw draw after draw, with Stockfish narrowly in the lead after winning games 33 and 49. At the start of the second half, Leela narrowed the score by winning games 52 and 56. There followed a tense period where the superfinalists traded wins, but beginning from game 71 Stockfish scored six wins without reply to take a big, and as it turned out decisive, lead. Stockfish mathematically won the superfinal after drawing game 95. The final score was +14 -8 =78 in favor of Stockfish.

### Notable games

In an article published shortly after the superfinal, GM Matthew Sadler called the superfinal a 'captivating' affair which Stockfish won because it was better at defending inferior positions. The following are selected from the many games analyzed by GM Sadler.

#### Games 5/6

| | 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 | |
Because the openings were ordered in ascending bias, it was very unexpected for an opening pair this early to yield a 1-0, 1-0 result. In analyzing the book exit position (diagram), GM Sadler found that older versions of Stockfish could not tell how dangerous White's position is until it had searched to a high depth.
Stockfish–Leela Chess Zero, game 5 (Nimzo Indian Defense): 1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. e3 O-O 5. Bd3 b6 6. e4 Bb7 7. e5 Bxg2 8. exf6 g6 9. Bg5 d5 10. Qg4 Bxh1 11. O-O-O dxc4 12. Bc2 Bb7 13. Nh3 Re8 14. Qh4 Bf3 15. Rg1 e5 16. Bd2 Nd7 17. Ng5 Nxf6 18. dxe5 Bxc3 19. Bxc3 Nh5 20. Qxc4 Qd5 21. Qh4 Qc6 22. Qh3 Rad8 23. Qxf3 Qxf3 24. Nxf3 Nf4 25. Bd1 b5 26. Kc2 a6 27. a3 c5 28. Rg4 Nd5 29. Ba5 Rd7 30. Bd2 f6 31. exf6 Nxf6 32. Rg1 c4 33. Kc1 Ne4 34. Be3 Rd5 35. h4 Rf5 36. Kb1 Kh8 37. Rg2 Rd5 38. Bc2 Kg7 39. Rg4 Nc5 40. Ng5 Nd3 41. b3 h6 42. Nf3 Rc8 43. Re4 Rf5 44. Nd2 Nxf2 45. Re7+ Kf6 46. Ra7 Nd3 47. Bxh6 Re8 48. Rxa6+ Re6 49. Bg5+ Ke5 50. Rxe6+ Kxe6 51. a4 bxa4 52. bxc4 Ne5 53. Bxf5+ Kxf5 54. Kb2 Ke6 55. Ka3 Kd7 56. Kxa4 Kc6 57. Nb3 Kd7 58. Kb5 Nf7 59. c5 Nd6+ 60. cxd6 Kxd6 1-0
Leela Chess Zero–Stockfish, game 6 (Nimzo Indian Defense): 1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. e3 O-O 5. Bd3 b6 6. e4 Bb7 7. e5 Bxg2 8. exf6 g6 9. Bg5 d5 10. Qg4 Bxh1 11. O-O-O dxc4 12. Bc2 Bb7 13. Nh3 Re8 14. Qh4 Bf3 15. Rg1 e5 16. Be3 Nd7 17. Ng5 Nxf6 18. Nxf3 Bxc3 19. bxc3 e4 20. Ne5 Nd5 21. Qh5 Nxe3 22. fxe3 Qf6 23. Qe2 b5 24. Rf1 Qe7 25. Bxe4 Rad8 26. Qc2 f6 27. Nc6 Qa3+ 28. Kb1 f5 29. Bxf5 Rd6 30. Be4 Rf8 31. Ne7+ Kg7 32. Rxf8 Kxf8 33. Nd5 Rd7 34. h4 Rf7 35. Nf4 Rf6 36. Qb2 Qxb2+ 37. Kxb2 Ke8 38. a4 bxa4 39. Ka3 Kd8 40. Bc2 Kc8 41. Kxa4 Ra6+ 42. Kb5 Ra1 43. Nd5 Rc1 44. Ba4 Ra1 45. Kb4 Re1 46. Kxc4 h6 47. Ne7+ Kd8 48. Nc6+ Kc8 49. Nxa7+ Kb7 50. Nc6 g5 51. hxg5 hxg5 52. Kd3 Ra1 53. Bb5 Kb6 54. c4 g4 55. Ke2 Kb7 56. e4 Kc8 57. e5 Kd7 58. Nb8+ Ke7 59. d5 Ra2+ 60. Kf1 Ra1+ 61. Kf2 Kf7 62. Nc6 Kg6 63. c5 Ra2+ 64. Kg3 Kg5 65. e6 Ra3+ 66. Kg2 Kf4 67. Bf1 Rg3+ 68. Kf2 Rf3+ 69. Ke1 g3 70. Bg2 Rf2 71. e7 Rxg2 72. e8=Q Rg1+ 73. Ke2 Rg2+ 74. Kd3 Ra2 75. Qf8+ Kg5 76. Nd4 Rf2 77. Qe7+ Kg4 78. Qe6+ Kg5 79. Qe5+ Kh4 80. Ke3 Rf1 81. Qg7 Rf2 82. Ne2 Rxe2+ 83. Kxe2 g2 84. Qxg2 1-0

#### Game 12

| | 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 | |
This game featured a topical line of the Ruy Lopez Berlin. A few days prior to this game being played, Anish Giri had won an impressive game against Aryan Tari at the Tata Steel Chess Tournament 2021 in this very line. In this game however, Stockfish had no trouble defending with Black, making for an important theoretical game.
Leela Chess Zero–Stockfish, game 12 (Ruy Lopez Berlin): 1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. O-O Bg4 7. h3 Bh5 8. g4 Nxg4 9. hxg4 Bxg4 10. Be3 Be7 11. Kg2 f5 12. Qe1 Bxf3+ 13. Kxf3 f4 14. Bd2 g5 15. Bc3 Qd6 16. Nd2 Qe6 17. Ke2 h5 18. f3 g4 19. Nc4 Bf6 20. Rh1 O-O-O 21. Qf2 Kb8 22. Qg2 g3 23. Qh3 Qe7 24. a3 Rdg8 25. Rag1 h4 26. b4 b6 27. Kf1 a5 28. Kg2 a4 29. Rb1 Rd8 30. Nb2 b5 31. Nd1 Rh6 32. Re1 Qe8 33. Re2 Bg7 34. Ba1 Bf8 35. Rd2 Kb7 36. Nc3 Ka7 37. Ne2 c5 38. c3 c4 39. d4 Qg6 40. Bb2 Bg7 41. Rc1 Kb7 42. Rb1 Rh5 43. Re1 Qb6 44. Red1 Rd6 45. Rg1 Rd8 46. Rgd1 Kb8 47. Rb1 Rh6 48. Ra1 Qg6 49. Rc1 Rh5 50. Rg1 Kb7 51. Rgd1 Rh6 52. Re1 Rhh8 53. Rh1 Qb6 54. Ba1 Bf6 55. Bb2 Kb8 56. Rhd1 Bg7 57. Rg1 Bf6 58. Rf1 Kb7 59. Rfd1 Rd6 60. Rg1 Rdd8 61. Ra1 Qd6 62. Rc1 Qc6 63. Rcd1 Rh6 64. Rg1 Qa6 65. Ra1 Qc6 66. Rg1 Rhh8 67. Re1 Qb6 68. Ra1 Kb8 69. Rf1 Bg7 70. Re1 Qc6 71. Rh1 Qb6 72. Re1 Kb7 73. Rg1 Bf6 74. Re1 Rd6 75. Ra1 Kb8 76. Rc1 Kb7 77. Ra1 Rdd8 78. Rg1 Qc6 79. Rgd1 Rh6 80. Rb1 Kb8 81. Rc2 Qd6 82. Rh1 Kb7 83. Re1 Bg7 84. Bc1 Kb8 85. dxe5 Bxe5 86. Nd4 Qb6 87. Bb2 Kb7 88. Rd2 Qg6 89. Ree2 Qb6 90. Rd1 Qg6 91. Ree1 Rd6 92. Rd2 Qf7 93. Rh1 Qg6 94. Rhd1 Rh8 95. Rh1 Qf6 96. Re2 Rh5 97. Rhe1 Rd8 98. Rd2 Rhh8 99. Rh1 Rd6 100. Re2 Qg6 101. Rd1 Rh5 102. Red2 Rh8 103. Re2 Rg8 104. Rh1 Rh8 105. Ra1 Rhd8 106. Rf1 Rh8 107. Rh1 Qf6 108. Rd2 Qg5 109. Bc1 Qd8 110. Rhd1 Qf6 111. Re2 Qg6 112. Rf1 Rh7 113. Bb2 Qg8 114. Rd2 Qg5 115. Re2 Qg6 116. Rg1 Rh8 117. Rh1 Qf6 118. Rd2 Rh5 119. Ba1 Qd8 120. Bb2 Qf6 121. Rc2 Qg6 122. Rd1 Rh7 123. Ra1 Qf6 124. Rh1 Qd8 125. Re1 Rh8 126. Rh1 Rdh6 127. Rd1 Rd6 128. Rcd2 Qf6 129. Bc1 Ka6 130. Rh1 Qd8 131. Re2 Rf6 132. Rd1 Qd6 133. Bb2 Rg6 134. Red2 Rd8 135. Nb3 1/2-1/2

#### Game 33

| | 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 | |
Stockfish drew first blood in this game, winning with White and holding the reverse. After 24 moves (diagram) the position was looking rather locked. Stockfish was spending most of its time on f5, while Leela predicted White will play b4-b5, neither being a plan that looked very convincing to human eyes. Stockfish evidently agreed that f5 would not make progress and started shuffling, while Leela forced things with 34...a4 followed by 35...Nb3. This pawn sacrifice gave Stockfish a queenside majority that it eventually converted into a win.
Stockfish–Leela Chess Zero, game 33 (Queen's Pawn Game): 1. c4 b6 2. d4 e6 3. e4 Bb7 4. Bd3 Bb4+ 5. Kf1 Be7 6. Nf3 d6 7. Nc3 Nd7 8. h4 Ngf6 9. Qe2 O-O 10. Bc2 e5 11. h5 h6 12. Be3 Re8 13. Rd1 Bf8 14. d5 Be7 15. g3 Nh7 16. Kg2 Bc8 17. a3 a5 18. Rde1 Rf8 19. Nh2 Bg5 20. f4 Bf6 21. Bd2 Nc5 22. b3 Re8 23. Nf1 Kh8 24. Qf3 Bd7 25. Nb5 Bc8 26. Ne3 Kg8 27. Ref1 Kh8 28. Rb1 Qe7 29. Rbd1 Qd8 30. Rh2 Bd7 31. Be1 Qc8 32. Kh1 Be7 33. Rg2 Bf6 34. Rb1 a4 35. b4 Nb3 36. Bxb3 axb3 37. Rxb3 Bd8 38. Bd2 Be7 39. Kg1 Bf6 40. Bc1 Be7 41. Rc3 Bd8 42. Rd3 Bf6 43. Rdd2 Bh3 44. Rh2 Bd7 45. Rde2 Bd8 46. Rhf2 Bf6 47. Kh1 Be7 48. Rc2 Bf6 49. Rf1 Bh3 50. Re1 Bd7 51. Kg2 Bh3+ 52. Kh2 Bd7 53. Kg2 Be7 54. Bb2 Bh3+ 55. Kh2 Bd7 56. Rf1 Bf6 57. f5 Ng5 58. Qg2 Nh7 59. Qe2 Bg5 60. Ng4 Ra4 61. Kg2 Rg8 62. Qd3 Ra8 63. Rcf2 Rf8 64. Rh1 Qb8 65. Ra1 Qc8 66. Bc3 Ra4 67. Rff1 Nf6 68. Nxf6 gxf6 69. Be1 Bxb5 70. cxb5 Qa8 71. Qb3 Qa7 72. Bc3 Ra8 73. Bb2 Qb8 74. Rf2 Qe8 75. Qd3 R8a7 76. Rc2 Qa8 77. Kf3 Kg7 78. Rc6 Qb8 79. Qc2 Kf8 80. Rd1 Rxa3+ 81. Bxa3 Rxa3+ 82. Rd3 Rxd3+ 83. Qxd3 Qa7 84. Rc3 Qa4 85. Rxc7 Qxb4 86. Rc6 Kg7 87. Rxb6 Bc1 88. Kg2 Ba3 89. Rb8 Bc1 90. Rc8 Bd2 91. Kh3 Be1 92. b6 Qxb6 93. Qe2 Bd2 94. Qxd2 Qb1 95. Qc2 Qf1+ 96. Kg4 Qb5 97. Rd8 Qa6 98. Kh4 Qf1 99. Rxd6 Qh1+ 100. Kg4 Qf1 101. Rd8 Qe1 102. d6 Qe3 103. d7 Qg5+ 104. Kh3 Qxh5+ 105. Kg2 Qg6 106. Rb8 Qxg3+ 107. Kxg3 h5 108. d8=Q h4+ 109. Kxh4 Kh6 110. Qh8#

#### Game 49

| | 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 | |
Stockfish won its second opening after Leela missed a crucial tactical sequence (diagram). In human terms, it tunnel-visioned at a single move, then played quickly when its opponent responded in an unexpected way, completely missing its opponent's upcoming reply.
Stockfish–Leela Chess Zero, game 49 (King's Indian Defense): 1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. f3 O-O 6. Be3 e5 7. d5 Nh5 8. g4 Nf4 9. h4 Bf6 10. h5 c5 11. Qd2 Bh4+ 12. Kd1 Bg5 13. Kc2 Nd7 14. Rd1 Qf6 15. Qc1 Rd8 16. Bd3 Re8 17. hxg6 fxg6 18. Nh3 Nxh3 19. Rxh3 Bxe3 20. Qxe3 Rf8 21. Rg1 Qe7 22. Rgh1 Nf6 23. Ne2 Rf7 24. Ng3 b5 25. cxb5 a6 26. b6 Rb8 27. Kb1 Nd7 28. b7 Bxb7 29. g5 Rg7 30. Rh4 Bc8 31. Ne2 Rf7 32. Nc3 a5 33. R4h2 Nb6 34. Ka1 Bd7 35. Qg1 Na4 36. Nb1 Rg7 37. Na3 Nb6 38. Qg3 Rf7 39. Nb1 Na4 40. Na3 Nb6 41. Be2 Qf8 42. Qe1 Qe7 43. Qg3 Qf8 44. Rh6 Qe7 45. Qh2 Rg7 46. Qg3 Rf7 47. Qg1 Rg7 48. R6h2 Rf7 49. Nb1 Na4 50. Bd3 Rg7 51. Qe3 Rf7 52. Na3 Nb6 53. Qd2 a4 54. Be2 Bc8 55. Rh6 Rg7 56. Rg1 Rf7 57. Qa5 Qb7 58. Qc3 Qe7 59. Qa5 Qb7 60. Qd2 Qe7 61. Rgh1 Rg7 62. Bd3 Bd7 63. Nb1 Bc8 64. R6h4 Rf7 65. Na3 Bd7 66. Rh6 Rg7 67. R6h2 Rf7 68. Qg2 Rg7 69. Rh4 Rf7 70. R4h2 Rg7 71. Rh4 Rf7 72. Rh6 Rg7 73. R6h2 Rf7 74. Qg3 Na8 75. Nc2 Rbf8 76. Be2 Rg7 77. a3 Nc7 78. Ne3 Kh8 79. Bd3 Bb5 80. Bc2 Bd7 81. Nf5 gxf5 82. g6 f4 83. Qg2 Rff7 84. Rh6 Bb5 85. gxf7 Qxf7 86. Qd2 Qd7 87. Bd3 Bxd3 88. Qxd3 Nb5 89. Qc4 Nc7 90. Qc3 Kg8 91. Qe1 Nb5 92. Qa5 Nc7 93. Qb6 Ne8 94. Qb8 Re7 95. Ka2 Kf8 96. Rg1 Rf7 97. Re6 Re7 98. Rxe7 Kxe7 99. Rg8 Qd8 100. Qxd8+ Kxd8 101. b3 axb3+ 102. Kxb3 h5 103. Rh8 Kd7 104. a4 Nc7 105. Rxh5 Kc8 106. Rh8+ Kd7 107. a5 Na6 108. Kc4 Nc7 109. Rb8 Na6 110. Rb6 Nb4 111. a6 Nxa6 112. Rxa6 Ke7 113. Kb5 c4 114. Kxc4 Kf6 115. Rxd6+ Ke7 116. Re6+ Kf7 117. Kc5 Kg7 118. d6 Kf7 119. Kd5 Kg7 120. d7 Kf8 121. d8=Q+ Kg7 122. Qd7+ Kf8 123. Re8#

#### Game 52

| | 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 | |
In one of the best games of the superfinal, Leela plays the inhuman move 15.b4!? with a long-term plan to blockade Black's minor pieces. Stockfish sacrificed a piece for four pawns to break the blockade, but Leela successfully played against the weaknesses this manoeuvre created to convert the endgame.
Leela Chess Zero–Stockfish, game 52 (King's Indian Defense): 1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Be2 O-O 6. Be3 e5 7. d5 a5 8. g4 Na6 9. g5 Nd7 10. h4 Ndc5 11. h5 c6 12. Nf3 Bd7 13. Nd2 a4 14. Kf1 f5 15. b4 Nxb4 16. h6 Bh8 17. Bxc5 dxc5 18. a3 Qxg5 19. axb4 cxb4 20. Nxa4 cxd5 21. Nb6 Rxa1 22. Qxa1 Qxd2 23. Nxd7 Rc8 24. Rh3 dxe4 25. Nb6 b3 26. Rxb3 Qxh6 27. Ke1 Rf8 28. Nd5 e3 29. Nxe3 e4 30. Qa5 Bg7 31. Rxb7 f4 32. Nd1 Kh8 33. Qc7 f3 34. Bf1 Rg8 35. Qd6 Qg5 36. c5 Qc1 37. Rxg7 Rxg7 38. Qd8+ Rg8 39. Qd4+ Rg7 40. Bc4 h5 41. c6 Qg5 42. Bd5 Kh7 43. Ne3 Re7 44. Qc5 Qe5 45. Kd1 Kh6 46. Kc2 Rc7 47. Nc4 Qf4 48. Kb3 h4 49. Be6 Qf6 50. Bd7 h3 51. Ne3 Kh7 52. Nd5 Qf7 53. Qd6 Ra7 54. Bxh3 Ra8 55. c7 Kh6 56. Kc2 Qg7 57. c8=Q Ra2+ 58. Kb3 Qb2+ 59. Kc4 Ra4+ 60. Nb4 Qc2+ 61. Kb5 Qxc8 62. Bxc8 Ra7 63. Qf8+ Kh7 64. Nd5 Rg7 65. Nf6+ Kh6 66. Nxe4 Kh7 67. Ng5+ Kh6 68. Nf7+ Kh5 69. Qh8+ Rh7 70. Qxh7#

#### Game 59

| | 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 | |
| | 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 | |
This opening was the Taimanov variation of the Modern Benoni, a line known to be difficult for Black. Nonetheless, Stockfish was able to hold the reverse game successfully while out-assessing Leela to win this game. Both engines saw the same main line after 28. Qxd5, but Stockfish evaluated the key position after 37. Ne5 as a cast-iron win, an evaluation that turned out to be correct.
Stockfish–Leela Chess Zero, game 59 (Modern Benoni): 1. d4 Nf6 2. c4 c5 3. d5 e6 4. Nc3 exd5 5. cxd5 d6 6. e4 g6 7. f4 Bg7 8. Bb5+ Nfd7 9. a4 Na6 10. Nf3 Nb4 11. O-O a6 12. Be2 O-O 13. Be3 Nf6 14. Nd2 Rb8 15. Kh1 Re8 16. Bf2 b5 17. axb5 axb5 18. Bxb5 Bg4 19. Qa4 Bd7 20. Bxd7 Nxd7 21. Bg1 Nb6 22. Qb3 f5 23. e5 dxe5 24. d6+ Kh8 25. Nf3 exf4 26. Rfd1 Nd7 27. Nd5 Nxd5 28. Qxd5 Qb6 29. b4 Bxa1 30. Rxa1 Nf6 31. Qxc5 Qxb4 32. d7 Rf8 33. Qxb4 Rxb4 34. Bc5 Rbb8 35. Bxf8 Rxf8 36. Rd1 Rd8 37. Ne5 Kg7 38. Kg1 Kf8 39. Kf1 g5 40. Rd4 h5 41. h4 g4 42. Ke2 Kg8 43. Kf1 Kf8 44. Rd1 Kg8 45. Rd6 Kg7 46. Ke2 Ne4 47. Nc6 Nxd6 48. Nxd8 Kf6 49. Nc6 Nf7 50. d8=Q+ Nxd8 51. Nxd8 Ke5 52. Kf2 Kd5 53. Nb7 Kc6 54. Na5+ Kd5 55. Nb3 Ke4 56. Nc5+ Ke5 57. Nd3+ Ke4 58. Nc5+ Ke5 59. Nd3+ Ke4 60. Nb4 g3+ 61. Ke2 f3+ 62. gxf3+ Kd4 63. Nc2+ Ke5 64. Ke3 f4+ 65. Ke2 Kd5 66. Ne1 Kd6 67. Kf1 g2+ 68. Kxg2 Ke5 69. Nd3+ Kf5 70. Kf2 Kg6 71. Nxf4+ 1-0

#### Game 77

| | 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 | |
| | 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 | |
In a powerful attacking game, Leela opened lines against its king in an effort to complete its development, and Stockfish sliced through.
Stockfish–Leela Chess Zero, game 77 (Sicilian Defense): 1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Be3 e6 7. f3 Nc6 8. Qd2 Be7 9. O-O-O O-O 10. g4 Nd7 11. h4 Nxd4 12. Bxd4 b5 13. g5 Qc7 14. h5 b4 15. Na4 Qa5 16. b3 Bxg5 17. Be3 h6 18. f4 Be7 19. Rg1 Kh8 20. e5 Rb8 21. exd6 Bf6 22. a3 e5 23. Bc4 exf4 24. Bd4 Qf5 25. Rdf1 Bg5 26. Rxg5 hxg5 27. Re1 f6 28. Re7 f3 29. h6 gxh6 30. Kb2 f2 31. Bxf2 Ne5 32. Bd5 Bd7 33. Nc5 Bc6 34. Be6 Qf4 35. Be3 Qg3 36. Qd4 bxa3+ 37. Ka2 Rfe8 38. Rc7 Qg2 39. Qc3 Qf3 40. Bd4 Qxc3 41. Bxc3 Bf3 42. Bf5 Rbd8 43. Bg6 Nxg6 44. Bxf6+ Kg8 45. Rg7+ Kf8 46. d7 Re2 47. Bxd8 Kxg7 48. Ba5 Rxc2+ 49. Kxa3 Rxc5 50. d8=Q Rc6 51. Bc3+ Rxc3 52. Qd4+ Kf7 53. Qxc3 Be2 54. Qc7+ Kf6 55. Qh2 Bb5 56. Qxh6 Kf5 57. Qh7 Kf6 58. Kb4 Nf4 59. Kc3 Bd3 60. Qh8+ Kf5 61. Qc8+ Kg6 62. Qe8+ Kf5 63. Kd4 Kg4 64. Qd7+ Kg3 65. Ke5 Bb5 66. Qd8 Nh3 67. Kf5 Be2 68. Qd2 Kf2 69. Qd4+ Kg2 70. Qe3 Bb5 71. Kg4 Bd7+ 72. Kh5 Bb5 73. Qe4+ Kf2 74. Qf5+ Kg3 75. Qg4+ Kh2 76. Qf3 Be8+ 77. Kh6 Bb5 78. Kg6 Be8+ 79. Kf5 Bd7+ 80. Kf6 Bb5 81. Ke5 Ng1 82. Qf2+ Kh1 83. Ke4 Be2 84. Qg3 g4 85. Ke3 Bf3 86. Qe1 Kh2 87. Qf2+ Kh1 88. b4 Nh3 89. Qg3 Ng1 90. Qd6 Nh3 91. Qxa6 Kh2 92. Qd6+ Kg2 93. b5 Ba8 94. Qa6 Bd5 95. b6 g3 96. b7 Nf2 97. b8=Q Ng4+ 98. Kd4 Nf2 99. Kxd5 1-0

#### Game 96

| | 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 | |
In this game featuring the Ruy Lopez Zaitsev variation, Leela comes up with an unusual plan to stop Black's queenside play while simultaneously pursuing its kingside attacking ambitions (diagram).
Leela Chess Zero–Stockfish, game 96 (Ruy Lopez): 1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Bb7 10. d4 Re8 11. Nbd2 Bf8 12. a4 h6 13. Bc2 exd4 14. cxd4 Nb4 15. Bb1 c5 16. d5 g6 17. Nf1 Bg7 18. Ng3 Nh7 19. a5 Rc8 20. Ra3 Rc7 21. Rb3 Rce7 22. Bd2 h5 23. Qc1 Nxd5 24. exd5 Rxe1+ 25. Nxe1 Nf6 26. Re3 Rxe3 27. fxe3 Bxd5 28. b4 Qe7 29. Ne2 Bc6 30. Nf4 Bh6 31. Kf1 Nd5 32. Ned3 Qg5 33. Nxd5 Bxd5 34. Nf4 Bc6 35. Be1 Bg7 36. Bc2 Qe5 37. Qd2 c4 38. Ne2 Qf6+ 39. Kg1 Qe5 40. Nd4 Bh6 41. Bf2 Ba8 42. Nf3 Qa1+ 43. Be1 Qf6 44. Kf2 Bg7 45. Kg3 Bh6 46. Qd4 Qxd4 47. exd4 Kf8 48. Bd2 Bg7 49. Bc3 Ke7 50. Ng1 Bd5 51. Bd1 Be6 52. Bc2 Kd7 53. Kf2 Bf6 54. Be4 d5 55. Bc2 Bh4+ 56. Kf3 Bd8 57. Bd2 Bc7 58. Bf4 Bd8 59. Bd2 Be7 60. Kf2 Bd6 61. Nf3 Ke7 62. Ke3 Bg3 63. Ne5 Kf6 64. Bd1 Bf5 65. Nc6 Ke6 66. Nd8+ Ke7 67. Nb7 Bc8 68. Nc5 Bh4 69. Kf3 Kd6 70. Bc2 Kc6 71. g3 Bf6 72. Be3 Bxh3 73. Nxa6 Bg4+ 74. Kf2 h4 75. Nc5 Be7 76. Kg2 Bd8 77. gxh4 Bxh4 78. Bd2 Bc8 79. Bd1 Bf6 80. Bc3 Bd8 81. a6 Bb6 82. Bf3 f6 83. Kf2 Kd6 84. Ke3 g5 85. Bh5 Ke7 86. Nb7 Ba7 87. Bf3 Bxb7 88. axb7 Ke6 89. Bh5 f5 90. Bg6 Bb8 91. Bd2 g4 92. Bh7 Bg3 93. Bg8+ Ke7 94. Bxd5 Kd7 95. Be1 Bb8 96. Bh4 f4+ 97. Ke2 Kd6 98. Be4 Ke6 99. Bd8 Bd6 100. Bb6 Bb8 101. Bc5 c3 102. d5+ Ke5 103. d6 Kxe4 104. d7 Bc7 105. Kd1 f3 106. b8=Q Bxb8 107. d8=Q Be5 108. Kc2 Kf5 109. Kd3 c2 110. Qf8+ Kg6 111. Kxc2 f2 112. Kd3 g3 113. Ke4 Bf6 114. Qg8+ Bg7 115. Qe6+ Bf6 116. Qg4+ Kf7 117. Qh5+ Kg7 118. Qd1 Kg6 119. Kd5 Kf7 120. Be3 Ke7 121. Qh1 f1=Q 122. Qxf1 g2 123. Qc1 Kf7 124. Bg1 Bd8 125. Qf4+ Bf6 126. Qf5 Ke7 127. Qh7+ Kd8 128. Bb6+ Ke8 129. Ke6 Bg7 130. Qg8+ Bf8 131. Qf7#