TCEC Season 15


The 15th season of the Top Chess Engine Championship began on the 6 March 2019 and ended on 12 May 2019.
The season featured for the first time two separate Division 4s, the winners of which moved to a playoff for promotion to Division 3. Also notable is the emergence of a new neural network-based engine based on AlphaZero, AllieStein, which reached the premier division, and Leela Chess Zero's victory in the superfinal, which marks the first time a neural-network engine has won the superfinal.

Overview

Structure

The season comprised six divisions: two Division 4s, a Division 3, 2, and 1, and the Premier Division. The top two engines of Division 4 advance to a playoff against each other, with the top two finishers advancing to Division 3. From there on, the structure is the same as the previous seasons: the top two engines of each division promote to the division above, while the bottom two engines relegate. The top two engines of the Premier Division contest a 100-game superfinal. The lengths of the opening books used increases as the divisions progress. The time control increases from 30 minutes + 5 seconds per move in Division 4 to 90 minutes + 5 seconds per move in the Premier Division.

Rules

After the controversial game 66 in the previous season's superfinal, TCEC modified its rules for disconnects: in most situations, instead of a restart from scratch, the games will be resumed from the last available position, albeit with time compensation for both engines to fill up their hash tables. The only other significant change is to remove the number of Black wins from the tiebreak criteria, leaving the tiebreakers as 1) number of crashes; 2) direct encounter; 3) number of wins; 4) Sonneborn–Berger score; 5) tournament director decision. Beyond that, the season used the standard rules of the TCEC.

Results

Division 4a

Nemorino, which had been relegated in Season 14, convincingly won Division 4a. It scored 13 wins in 18 games, and conceded only one loss, to finish 2.5 points ahead of the next-nearest competitor. Second place was more hotly contested. RubiChess defeated Winter head-to-head twice, but also lost both games to Nemorino. Winter scored more wins overall, but ultimately the head-to-head tiebreak meant RubiChess qualified for the playoffs.

Division 4b

In contrast to Nemorino's dominating performance in the other division, Pirarucu won Division 4b by only half a point, just ahead of AllieStein, who was in turn only half a point ahead of Wasp. Pirarucu lost the head-to-head against AllieStein, but also managed to dominate the lower half of the field harder than AllieStein. ScorpioNN, which had been thoroughly outclassed in the previous season's Division 4, showed it had improved tremendously to score five wins; however it was still unstable and crashed three times, leading to a disqualification.

Playoffs

Nemorino, RubiChess, Pirarucu and Alliestein qualified for the playoffs. In a dominating performance that showed how fast it was improving, AllieStein crushed the field and finished 3.5 points above second-placed Nemorino, winning all four of the head-to-head games against Nemorino and losing only one game to RubiChess. Despite the losses to AllieStein, Nemorino finished 1.5 points ahead of third-placed Pirarucu on the back of two head-to-head wins.

Division 3

Division 3 was closely contested, with every engine winning and losing games. rofChade and Alliestein finished first and second with 18/28 and 16.5/28 respectively, ahead of third-placed Arasan with 15.5/28. Arasan had missed out on promotion in Season 14 because eventual Premier Division engines Komodo MCTS and Leela Chess Zero were also in the division, and finished third again this season. Newly promoted Nemorino found itself outmatched and finished last with 11/28.

Division 2

Division 2 was less closely contested. Xiphos and AllieStein dominated, finishing first and second respectively some four points ahead of everyone else. First-placed Xiphos lost two games to AllieStein, who was still improving quickly, but dominated the rest of the field, scoring 3.5/4 in its mini-matches against ChessBrainVB, rofChade, Fritz, and Nirvana. At the other end of the table, Nirvana was outclassed and finished dead last, five points from safety and without winning a single game. Former champion Fritz, which had not been updated, was also relegated for a second season in a row.

Division 1

Early favorite Komodo MCTS, who had been doing respectably in the Premier Division last season until it was disqualified for crashing, comfortably won the division with 17.5/28. Up against its strongest opponents yet, AllieStein continued to show it was improving fast enough to be able to compete, finishing second behind Komodo MCTS. Fellow promoted engine Xiphos finished third, one point behind AllieStein, after losing yet another two games to AllieStein. At the other end of the table, Italian champion Chiron finished last, three points off the pace, but the other relegation spot was closely contested. Former champion Jonny needed to hold Komodo MCTS to a draw with black in its final game to finish ahead of Fizbo, who had superior tiebreakers. It failed, and was relegated.

Premier Division

Although expectations were for a competitive premier division, as the division progressed things turned out to be straightforward. Last season's champion Stockfish continued to demonstrate its superiority to the field, comfortably beating every other engine – in each of its head-to-head matches it had at least a +2 score – except the previous season's runner-up Leela. Ominously, however, it lost a game to Leela. Meanwhile, Leela did not win nearly as many games as Stockfish, but also lost none. Together, Leela and Stockfish had more wins than the rest of the division combined, and the gulf between 2nd-place Leela and 3rd-place Komodo was a massive 4 points. At the other end of the table, Ethereal and Fire quickly found themselves outclassed, finishing 2–3 points off the pace. Unlike last season, however, both tailenders managed to score two wins.
Compared to the top and bottom, the middle of the table was fiercely contested between Komodo, Komodo MCTS, Houdini, and AllieStein. Each engine fought to avoid losing to Stockfish & Leela while beating up on Ethereal & Fire. Komodo MCTS leapt to an early lead after defeating Fire, while AllieStein lost to first Houdini and then Leela to rank last. Meanwhile, Komodo did not win any games, but didn't lose any either. As the division progressed, it became clear that a 50% score would not suffice to compete for third place, and when Komodo further went down to Stockfish it found itself last. Komodo MCTS was still in the lead when it crashed in what was probably a drawn position against AllieStein. This led to the number of threads for Komodo MCTS being reduced from 43 to 32, which likely contributed to its weaker performance in the final segment of the division. In the last round-robin round of the division, Komodo scored a head-to-head win against AllieStein, while simultaneously defeating Fire twice with both colors of the same opening. This led to it finally finishing third, four points behind Leela but a point ahead of Houdini and AllieStein.

Superfinal

Going into the superfinal, Leela had the momentum on the back of its victory at Chess.com's Blitz championship, its superior head-to-head score against Stockfish in the Premier Division, its win in the TCEC Cup 3, and the fact that it had shown a lot of improvement in self-play while Stockfish had been stagnant. Combined, it meant Stockfish was no longer the favorite to win the superfinal.
Leela drew first blood by winning game 10 on the white side of a Benoni. Although Stockfish defended with characteristic tenacity, it was eventually forced to sacrifice a piece for two pawns, and Leela ground out a win. Stockfish equalized in game 12 after Leela blundered in a complicated endgame where she was up material, but Stockfish had several menacing passed pawns. After this initial exchange, Leela took a commanding lead by winning games 16, 18, 24 and 26, while conceding none. Stockfish finally scored a win in game 35, but failed to hold the reverse game, and after Leela won game 38 the gap widened further to five games. There was a glimmer of hope for Stockfish when it won games 43 and 45 to narrow the gap to 3 points, but Leela scored a decisive victory in games 61 and 62, outplaying Stockfish with both the white and black pieces in a Trompowsky Attack. The final third of the superfinal was more evenly contested, but Leela only conceded losses when Stockfish also lost the opening, and further managed to win game 86 after holding the reverse. In the end, Leela won by seven points, +14 -7 =79.

Reactions

In an article describing his impressions of the superfinal, British GM Matthew Sadler noted key differences between Stockfish's and Leela's style, as well as their strengths & weaknesses, using games 43/44, 45, 61, and 97 as examples.

Games 43/44

This game pair featured a dubious line of the Two Knights Defense: 1.e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5?! This extremely risky recapture has been described by IM Lawrence Trent as a move that is "certainly not to be recommended". Forced to defend the Black side of this opening, Stockfish steered the game to a cheerless and passive but tenable position, similar to what Fabiano Caruana had done in Game 9 of the World Chess Championship 2018. Like Caruana, Stockfish faced a long defensive task with no active plans of its own, but also like Caruana, Stockfish was able to hold the position. Meanwhile, when it was Leela's turn to defend with Black, it sought complications and wound up in a chaotic position. Stockfish's "trench warfare" playstyle fared better than Leela's in this game pair, and Stockfish won this opening by winning with White while drawing with Black.
Game 43: Stockfish–Leela Chess Zero
1. e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5 6. d4 Nxd4 7. c3 b5 8. Bd3 h6 9. Nxf7 Kxf7 10. cxd4 exd4 11. O-O Rb8 12. a4 Nb4 13. Bxb5 Kg6 14. Nd2 Bd6 15. Re1 a6 16. Bc4 Rf8 17. Nf3 c5 18. Re4 Qf6 19. Ra3 Bf5 20. Nh4+ Kh7 21. Nxf5 Qxf5 22. Qe2 Rbd8 23. Rh3 d3 24. Bxd3 Nxd3 25. Rxd3 Rfe8 26. Rde3 Rxe4 27. Rxe4 Bc7 28. g3 Rd1+ 29. Qxd1 Qxe4 30. Be3 Be5 31. Bxc5 Bxb2 32. h4 Bf6 33. Ba7 Kh8 34. a5 Bc3 35. Bb6 Qf5 36. Kg2 Qb5 37. Qd8+ Kh7 38. Qc7 Qd3 39. Kh2 Bd2 40. Qc5 Bc3 41. Qc8 Bb4 42. Qc7 Bc3 43. Qc8 Be1 44. Qe6 Bd2 45. Qf7 Be1 46. Kg2 Bd2 47. Qh5 Bc3 48. Qf3 Qc4 49. h5 Kh8 50. Qf8+ Kh7 51. Qf5+ Kh8 52. Qf8+ Kh7 53. Qf5+ Kh8 54. Kg1 Kg8 55. Kh2 Kh8 56. Qf8+ Kh7 57. Qf5+ Kg8 58. Be3 Kh8 59. Kg1 Kg8 60. Kh2 Kh8 61. Ba7 Kg8 62. Bb6 Kh8 63. Qf8+ Kh7 64. Qf3 Bf6 65. Qf5+ Kg8 66. Be3 Bc3 67. Kg2 Qc6+ 68. Kg1 Qc4 69. Kg2 Qc6+ 70. Kh2 Qc4 71. Qc2 Qb4 72. Bb6 Qc4 73. Qd1 Kh7 74. Qc2+ Kh8 75. Qd1 Kh7 76. Kg2 Kg8 77. Kg1 Bb4 78. Qd7 Bc3 79. Qc7 Qxc7 80. Bxc7 Kf7 81. Kg2 g6 82. hxg6+ Kxg6 83. Kf3 Kf5 84. g4+ Kg6 85. Ke4 h5 86. gxh5+ Kxh5 87. Kf5 Be1 88. f4 Bg3 89. Bd8 Kh6 90. Ke4 Kg6 91. Bc7 Be1 92. Ke5 Kf7 93. Kd5 Ke7 94. Kc6 Bd2 95. Kb6 Kd7 96. Be5 Ke6 1-0
Game 44: Leela Chess Zero–Stockfish
1. e4 e5 2. Nf3 Nc6 3. Bc4 Nf6 4. Ng5 d5 5. exd5 Nxd5 6. d4 Be6 7. O-O Nxd4 8. Nxe6 fxe6 9. Nd2 Qd7 10. Qh5+ g6 11. Qxe5 Bg7 12. Qe4 Nf5 13. Re1 O-O-O 14. Bb3 e5 15. c3 Rhe8 16. Nf3 Nf6 17. Qa4 Qxa4 18. Bxa4 c6 19. Bb3 Nd5 20. g3 Nd6 21. Ng5 h6 22. Ne4 g5 23. Nxd6+ Rxd6 24. Re2 Red8 25. a4 a5 26. Kg2 Kc7 27. Bc2 Nb6 28. Re4 Bf6 29. Bb3 Rd3 30. Rb1 R3d7 31. Re2 Nd5 32. Ra1 b6 33. Bc2 Ne7 34. Rb1 Nd5 35. Ra1 Rd6 36. Bb1 Ne7 37. Bh7 Nd5 38. Bc2 Kb7 39. Bb1 Kc7 40. h3 Ne7 41. Be4 R6d7 42. Rb1 Nd5 43. Bg6 Rd6 44. Bh7 Bg7 45. Ra1 Nf6 46. Bb1 Nd5 47. Bh7 Nf6 48. Bf5 Nd5 49. Bc2 Bf6 50. Bh7 Ne7 51. Be4 R6d7 52. Bc2 Nd5 53. Bg6 Rd6 54. Bc2 Kb7 55. Bb1 R6d7 56. Bf5 Rd6 57. Rb1 Bg7 58. Be4 Nf6 59. Bc2 Nd5 60. Ra1 Kc7 61. Rb1 Bf6 62. Kg1 Ne7 63. Kf1 Nd5 64. Kg2 Bg7 65. Kg1 Kb7 66. Ra1 R6d7 67. Re4 Bf6 68. Re2 Kc7 69. Kf1 Ne7 70. Rb1 Nc8 71. Be3 Nd6 72. Rbe1 Re7 73. Bg6 Rg8 74. Bb1 e4 75. Kg2 Rge8 76. Bc2 Bg7 77. Rd1 Nc4 78. Bc1 Nd6 79. Rh1 Re5 80. h4 Bf6 81. h5 R5e7 82. Rd1 Be5 83. Kh3 Rg8 84. Rde1 Rge8 85. Be3 Bf6 86. Bb3 Rf8 87. Bd2 Rfe8 88. Rd1 Rg7 89. Be3 Be5 90. Bc2 Rf7 91. Bc1 Rfe7 92. Rde1 Bf6 93. Bb3 Rd7 94. Kg2 Rde7 95. Rd1 Be5 96. Bc2 Bf6 97. Kh2 Be5 98. Kh3 Re6 99. Bb1 R6e7 100. Rde1 Bf6 101. Bc2 Be5 102. Bb3 Rf8 103. Kg2 Bf6 104. Bd2 Rfe8 105. Bc1 Nf5 106. Ba2 Nd6 107. Bb1 Be5 108. Bd2 Bf6 109. Be3 Nc4 110. Kh3 Nd6 111. Bc1 Re5 112. Kg4 R5e7 113. Be3 Rf8 114. Bd2 Rfe8 115. Be3 Rd8 116. Rd1 Ree8 117. Kh3 Be5 118. Kg2 Bf6 119. Bc2 Nc4 120. Rxd8 Bxd8 121. Bc1 Nd6 122. Kh3 Bf6 123. Kg4 Re5 124. Be3 c5 125. Kh3 Re7 126. Bb3 Ne8 127. Bc1 Nd6 128. Re1 Kc6 129. Rd1 Re5 130. Bc2 Re7 131. Bb3 Kc7 132. Bd5 Re5 133. Bb3 Kc6 134. Re1 Ne8 135. Bc2 Nd6 136. Bb3 Re7 137. Bd2 Kc7 138. Bd5 Re8 139. Bc1 Re5 140. Bb3 Kc6 141. Bc2 Kd5 142. Kg2 Kc6 143. Kf1 Kc7 144. Bb3 Kc6 145. Bc2 Kd5 146. Bd1 Kc6 147. Bb3 Re8 148. Kg2 Kc7 149. Bd5 Re5 150. Bb3 Kc6 151. Bc2 Kd5 152. Bd1 Kc6 153. Bb3 Re7 154. Bc2 Kc7 155. Kh3 Kc6 156. Bb3 Be5 157. Bd1 Kd5 158. Re2 Kc6 159. Bc2 Bf6 160. Kg2 Kc7 161. Re1 Kc6 162. Kf1 b5 163. axb5+ Kxb5 164. Bd2 Nc4 165. Bc1 Nd6 166. Rd1 Be5 167. Be3 Nc4 168. Bc1 Nd6 169. Bb1 Kc6 170. Kg2 a4 171. Be3 Re8 172. Bc2 Ra8 173. Ra1 a3 174. Rxa3 Rxa3 175. bxa3 Bxc3 176. a4 Kd5 177. f3 c4 178. Kf2 Ba5 179. Ba7 Bc3 180. Bb6 Bd4+ 181. Bxd4 Kxd4 182. a5 exf3 183. a6 Nb5 184. Kxf3 Kc5 185. Ba4 c3 186. Ke4 Kb6 187. Kf5 Nd6+ 188. Kg6 Ne4 189. g4 Nf2 190. Kxh6 Nxg4+ 191. Kxg5 Ne5 192. Kf5 Nf7 193. Kf6 Nh6 194. Kg5 Nf7+ 195. Kg6 Ne5+ 196. Kf6 Ng4+ 197. Kf5 Nh6+ 198. Kg6 Ng4 199. Kf5 Nh6+ 200. Kg5 Nf7+ 201. Kg6 Ne5+ 1/2-1/2

Game 45

Although it might seem that Stockfish plays worse in positions with a blocked center, GM Sadler found this not to be the case – it is capable of purposeful play in blocked positions if it is given a target to latch onto in the opening. This game showed Stockfish converting what looked like a quiet middlegame into a kingside advance, and then into a decisive passed pawn.
Game 45: Stockfish–Leela Chess Zero
1. d4 Nf6 2. c4 b6 3. f3 Nc6 4. Nc3 d5 5. Qa4 Qd7 6. cxd5 Nxd5 7. Nxd5 Qxd5 8. e4 Qd6 9. Be3 Bd7 10. d5 Na5 11. Qc2 e5 12. Ne2 Be7 13. Nc3 O-O 14. Rc1 a6 15. Qd2 Qf6 16. Bd3 Nb7 17. O-O Bd6 18. Ne2 Qe7 19. Kh1 Nc5 20. Bc2 a5 21. Nc3 a4 22. Rfe1 Rfc8 23. Bd1 Rab8 24. Be2 a3 25. b3 b5 26. Red1 h6 27. Qe1 Na6 28. Qf1 Nb4 29. Rd2 Qe8 30. Rcd1 f6 31. Qf2 Qe7 32. Ba7 Rb7 33. Be3 Rbb8 34. h4 Rf8 35. g4 Rf7 36. Ba7 Rb7 37. Be3 Rb8 38. Qg1 Kh7 39. Qf1 Qe8 40. h5 Rf8 41. Qf2 Qe7 42. Bf1 Rfc8 43. Ne2 Qf8 44. Ng3 Na6 45. Kg2 Nb4 46. Rc1 Rb7 47. Qe2 Rbb8 48. Qf2 Rb7 49. Rcd1 Rbb8 50. Kh3 Qe8 51. Rc1 Qf8 52. Be2 Qe8 53. Kg2 Qf8 54. Qg1 Qe8 55. Qf2 Qf8 56. Rcd1 Qe8 57. Kh3 Kh8 58. Rc1 Kh7 59. Ba7 Rb7 60. Bc5 Na6 61. Be3 Rbb8 62. Kh4 Nb4 63. Qf1 Qe7 64. Kh3 Qe8 65. Kh2 Qe7 66. Qd1 Qe8 67. Kh3 Ra8 68. Kh4 Na6 69. Qg1 Bb4 70. Rdd1 Bf8 71. Kh3 Rab8 72. Kh4 Nb4 73. Rd2 Na6 74. Nf5 Bb4 75. Rdd1 Bf8 76. Qe1 Bb4 77. Qf1 Bf8 78. Kg3 Nb4 79. Rd2 Na6 80. Nh4 Bb4 81. Rdd1 Bd6 82. Qf2 Nb4 83. Rd2 Na6 84. Ng6 Bb4 85. Rdd1 c5 86. d6 Be6 87. f4 c4 88. bxc4 Nc5 89. Qf3 Nd7 90. fxe5 fxe5 91. cxb5 Rxc1 92. Bxc1 Rc8 93. Bxa3 Bxa3 94. Qxa3 Rc2 95. Qe3 Rxa2 96. Rc1 Rb2 97. Rc7 Qa8 98. Qf3 Qa1 99. Rc8 Bg8 100. Qf1 Qa3+ 101. Kh4 Qe3 102. Nf8+ Kh8 103. Qf5 g5+ 104. hxg6 Qd2 1-0

Game 61

This game featured a Trompovsky Attack resulting in a balanced starting position. Stockfish played aggressively and creatively, launching a kingside pawn storm. However, Leela steered the game to a pawn structure which it accurately assessed as better for Black. GM Sadler was impressed at the accuracy of Leela's evaluation, especially with Stockfish oblivious to the danger. The point is that with the kingside blocked, the queenside becomes the main arena, but White's weak pawn structure on the kingside meant it always had to delegate some pieces to their defense, pieces which cannot play on the queenside. Stockfish had had trouble evaluating these "total board" situations where both sides of the board matter in the mid-to-long term in its games against Alphazero, and the same thing happened here.
GM Sadler highlighted a later part of the game as well. In the second position, White's position is poor: it still has no attack on the kingside, while Black is making progress on the queenside. However, it's not clear how Black should proceed. Leela showed a creative plan: return the doubled pawn on c4, play...c4, and open the a7-g1 diagonal for the Black queen to invade. This plan – giving up a pawn for mobility – reminded GM Sadler of Alphazero's style.
Game 61: Stockfish–Leela Chess Zero
1. d4 Nf6 2. Bg5 Ne4 3. Bf4 c5 4. f3 Qa5+ 5. c3 Nf6 6. d5 Qb6 7. Bc1 d6 8. e4 e6 9. c4 g6 10. Ne2 Bg7 11. Nec3 O-O 12. Be2 Ne8 13. h4 h6 14. g4 Qd8 15. Be3 f5 16. f4 Qe7 17. h5 g5 18. Qd2 e5 19. fxg5 f4 20. Bf2 hxg5 21. Qd3 Nd7 22. Rg1 Bf6 23. Nd2 Qf7 24. O-O-O Bd8 25. Nf3 Kh7 26. Rg2 a6 27. Rdg1 Rg8 28. Qc2 Kh8 29. Kb1 Rb8 30. Ka1 Nef6 31. Nd1 Ba5 32. Nh4 Nf8 33. Bf3 b5 34. Nc3 Qe8 35. Nb1 Rb7 36. Nf5 Bxf5 37. gxf5 N8h7 38. h6 Bb4 39. Qe2 bxc4 40. Be1 Qd8 41. Nc3 Rb8 42. Kb1 Ba3 43. Na4 c3 44. Bxc3 Qd7 45. Qd1 Bb4 46. Ka1 Qb7 47. Qc2 a5 48. Qe2 Qd7 49. Qd1 c4 50. a3 Qb5 51. Qc2 Qe8 52. Be2 Qd7 53. Bf3 Qb5 54. Bd1 Bxc3 55. Nxc3 Qc5 56. Qd2 Qd4 57. Qe1 Qb6 58. Qd2 Rb7 59. a4 Qc5 60. Qe1 Rb4 61. Qd2 Qb6 62. Qc1 Qd4 63. Qc2 Rb3 64. Be2 Rxc3 65. Qxc3 Qxc3 66. bxc3 Nxe4 67. Bf3 Nef6 68. Be2 e4 69. Bxc4 g4 70. Rb2 Ng5 71. Rb6 Nf7 72. Bf1 f3 73. c4 Nd7 74. Rb7 Nfe5 75. f6 e3 76. Rb3 e2 77. Bxe2 fxe2 78. Re3 Nf3 79. f7 Rf8 80. Rxg4 e1=Q+ 81. Rxe1 Nxe1 82. Rg6 0-1

Game 97

Leela showed great calculation in this game, playing a combination that Stockfish had missed. Black's kingside advance breaks through and White's shaky king prevents it from exploiting the vulnerable queenside, achieving a draw.
Game 97: Stockfish–Leela Chess Zero
1. d4 Nf6 2. c4 g6 3. Nc3 Bg7 4. e4 d6 5. Nf3 O-O 6. Be2 e5 7. O-O Nc6 8. d5 Ne7 9. Ne1 Nd7 10. Nd3 f5 11. f3 f4 12. b4 g5 13. a4 h5 14. c5 Kh8 15. Qc2 Nf6 16. Nb5 Ne8 17. Nf2 Ng6 18. Na3 Nf6 19. h3 Rg8 20. Nc4 Bf8 21. Bb2 Kh7 22. Ra3 b6 23. Rc1 Rg7 24. Qd1 Be7 25. cxd6 cxd6 26. b5 Bd7 27. Kf1 Qf8 28. Rac3 Nh4 29. Ba3 g4 30. hxg4 hxg4 31. fxg4 f3 32. gxf3 Nh5 33. Ke1 Qf4 34. Bf1 Rf8 35. gxh5 Qg3 36. Nd2 Rgf7 37. Qe2 Nxf3+ 38. Kd1 Bg5 39. Bxd6 Qg1 40. Rxf3 Rxf3 41. Nxf3 Rxf3 42. Qxf3 Qxf1+ 43. Kc2 Qxc1+ 44. Kb3 Qb1+ 45. Kc3 Qc1+ 46. Kb3 Qb1+ 47. Kc3 Qc1+ 48. Kb3 1/2-1/2