Wednesday, July 23, 2025

Season 28 league 2 statistics

A summary statistics table of previous stages and seasons. 

Draw rate, wins

Final draw rate was 60.6%. 

Game termination

The three most common game termination causes were:
48.9% - TCEC draw rule
37.9% - Mate
9.1% - 3-Fold repetition

There were 4 crashes in the stage, Ginkgo twice and Stormphrax twice.

Moves per game

Median= 76.5
Average= 83.2

There were 62 games longer than 100 moves, the longest was 277 moves (Ginkgo - Uralochka, game 154, draw). 

Time per game (hours)

Median= 1:05
Average= 1:03

Openings

There were variable length book openings in this stage. The first letter of the ECO codes was distributed as follows: 

The engines had very little freedom to choose the opening variant, all but one of the game pairs repeated the same ECO code and the opening variant twice. In all of the game pairs the first letter of the ECO code was repeated.

Reverse pairs, wins

Reverse pairs, same moves

Pairs of reverse games diverged less quickly than usual, 18.9% diverged immediately out of book, 42.4% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 20 plys (Stormphrax - PlentyChess, games 151 and 217, Nimzo-Indian classical, San Remo variation, two draws) 


Tuesday, July 22, 2025

Season 28 league 2

Final standings

Reckless, PlentyChess, Integral and Stormphrax advance to league 1. Integral and PlentyChess started in the entrance league this season, Integral and Reckless are new to TCEC. Integral, PlentyChess and Reckless led from the start, with Stormphrax close behind. After RR1 Booot, Uralochka and Horsie were also close to the leaders, only Booot remained in the race after RR2. After RR3 Stormphrax and Booot couldn't keep up with the three leaders, and in the last RR Booot dropped from the race as well.

Reckless and PlentyChess finished the league with 13 game pair wins and no losses, each with two game losses. Somehow Ginkgo gave both a free win by crashing. Integral also finished with only 2 game losses, it won 11 game pairs and lost one to Reckless. Stormphrax also crashed twice, but only as it was about to be mated so there was no unwanted effect on the scores.

The four qualifiers will play in league 1 together with:
played in the premier division in season 27: Caissa, Seer
played in league 1 in season 27: Ceres, RubiChess, rofChade, Viridithas, Stoofvlees, Revenge

Interesting games

game 3, Booot - Starzix: Booot had a bishop pair, a passer in the center and control of an open file on the queen side. The game reached a QRB vs QRN position with white a pawn up, Booot gave the pawn back, pushed the passer and exchanged queens. Starzix captured the passer but lost all its pawns, Booot won the rook ending. 

game 11, Ginkgo - Booot: Both engines had a passer on the queen side in a closed position. Ginkgo moved its king to the queen side and blocked the black passer. After some shuffling Ginkgo pushed pawns and opened the king side. The black king ran to the center, Ginkgo gave a rook for a knight and captured pawns to create more passers. The game reached a RB vs RR position with 5 white pawns, Booot couldn't avoid a queening and mate.

game 18, Integral - PlentyChess: Integral captured a pawn and after some preparation created a passer on the queen side. The game reached a RBN vs RBN position and Integral captured another pawn. After exchanging minor pieces Integral pushed passers forward to win. 

game 34, Reckless - Horsie: Reckless was a pawn up early, it gave the pawn back but the black king was stuck in the center and Horsie had a trapped rook. By the time Horsie freed its rook Reckless opened the king side and threatened the black king. In a QRN vs QRN position Reckless captured a pawn, then reduced to a 7-man queen ending, it took more than 50 moves to mate.

game 47, Booot - Horsie: Horsie grabbed a pawn on the king side, Booot captured one on the queen side and created a passer. The engines opened the center and Horsie created a passer there, the game reached a QRN vs QRB position and Booot connected a second passer on the queen side. Horsie delayed with checks but eveentually lost material to stop the white passers, Booot won a 7-man QN vs Q ending in over 50 moves. 

game 55, Stormphrax - Ginkgo: The game reached a RB vs RB position with white a pawn up. For a long time it seemed the position was drawn, even after Stormphrax created a passer. However Ginkgo' s defense failed in time trouble, Stormphrax pushed the passer and Ginkgo lost a rook followed by mate. 

Standings after RR1: Integral PlentyChess Reckless +3, Uralochka Horsie Stormphrax +2, Booot +1, Velvet -2, Ginkgo Arasan Igel -3, Starzix -5. There are 7 engines with a positive score, 4 of them are without loss - Integral, Reckless, Uralochka and Stormphrax. It is still early for predictions, the picture will be clearer after the reverse games are played. The first several Ginkgo games were replayed because the wrong version was used, it still crashed in one game this RR. 

game 71, PlentyChess - Uralochka: The game reached a BN vs BN position that looked drawn. PlentyChess created a passer in the center and captured a pawn. After exchanging knights evals increased, PlentyChess exchanged pawns, Uralochka avoided a 7-man position by giving a pawn. PlentyChess queened a passer to win.

game 72, Integral - Horsie: Horsie had a passer on the queen side, Integral threatened to open the queen side and also threatened the black king on the king side. Horsie gave a knight for a pawn, this also created a passer for Integral. Integral gave a rook for a bishop and captured the black passer, it pushed its own passer forward. The black queen moved to capture the passer, Integral gave a bishop on the king side and mated.

game 84, PlentyChess - Integral: There was a series of exchanges after the start, then evals increased very slowly. After move 46 PlentyChess opened the king side and reduced to a RBN vs RBN position. The black pawns were weak and PlentyChess captured three pawns. It queened a passer to win.

game 91, Stormphrax - Booot: The engines castled in opposite directions and pushed pawns facing the opponent's king. Stormphrax locked the queen side pawns and opened the f file. It captured a pawn and created connected passers on the king side. After over 30 moves of exchanging pieces slowly the game reached a RB vs RB position with white a pawn up, Booot could not avoid a queening and mate.

game 93, Reckless - Uralochka: Uralochka captured an early pawn but was slow developing its pieces and its king was stuck in the center. Reckless moved a rook forward, regained the pawn and created a passer in the center. Uralochka lost some material to capture the passer, the game reached a RR vs RN position. It took some time for Reckless to capture pawns and create passers, Uralochka gave up and was mated.

game 94, Ginkgo - Horsie: Horsie was a pawn up but its king moved without castling, Ginkgo gave a knight for a pawn and exposed the black king. Horsie gave a rook for a bishop but was under a lot of pressure. Ginkgo doubled rooks on the 6th rank, after a series of exchanges the game reached a queen ending with white two pawns up. The endgame was slow, it took Ginkgo more than 70 moves to mate.

game 101, Uralochka - Velvet: Velvet was a pawn up from the start, the engines exchanged pieces and Uralochka traded two rooks for the black queen. Uralochka captured a pawn and reduced to a RR vs Q ending, this was probably a mistake as evals jumped. Velvet exchanged pawns, then it trapped the white king with its rooks and forced Uralochka to trade its queen for a rook, with mate following.

game 105, Velvet - Horsie: Evals slowly increased with all pieces on the board, Velvet captured a pawn on the king side and Horsie opened the queen side. This led to a series of exchanges that reduced to a RB vs RN position with white two pawns up. Velvet gave a pawn back and created a passer, then it created a second passer, queened and mated.

game 121, Ginkgo - Stormphrax: Ginkgo had a passer in the center and it pushed pawns on the queen side. The queen side opened, Stormphrax block a file with a knight. Stormphrax tried to keep the king side closed and lost a pawn. After a series of exchanges Ginkgo gave a rook for two knights and captured most of the black pawns. Ginkgo pushed passers and gained more material, Stormphrax crashed before mate.

game 127, Stormphrax - Horsie: All pieces were on the board and evals slowly increased. Stormphrax captured a pawn and opened the king side, then it shifted to the queen side and opened files there as well. After some preparation Stormphrax captured another pawn and created a passer on the queen side. Horsie lost more material, the game reached a QR vs QN position with white 3 pawns up. Horsie blocked the white passer but couldn't avoid mate.

Standings after RR2: PlentyChess Integral Reckless +6, Stormphrax +5, Booot +3, Uralochka 0, Ginkgo Horsie -2, Velvet -3, Starzix -5, Igel -6, Arasan -8. At the halfway point there are 5 engines with a positive score. Uralochka and Horsie had a weak RR2 and their ranking dropped. Only Reckless is without loss. Integral, PlentyChess and Stormphrax have not lost a game pair.

game 133, Reckless - Stormphrax: Reckless had a space advantage in a closed position, Stormphrax moved its queen forward and captured a pawn. Reckless trapped the black queen and captured it for two minors. Reckless gave a rook for a knight and threatened mate, Stormphrax gave back the material to save its king. The engines reduced to a Q vs BN ending, Stormphrax crashed in a 7-man lost position.

game 143, Ginkgo - Booot: Booot had a passer in the center but its king was a little exposed. It gave a knight for a pawn to protect its king and attacked the white king through the open h file. Ginkgo kept its king safe, it opened the queen side and the white queen moved forward. The engines exchanged pieces and Ginkgo captured two pawns, then reduced to a winning king and pawns ending.

game 159, Uralochka - Reckless: The engines exchanged pieces and pawns and the game reached a RN vs RN position with white a pawn up. The black pawns were isolated, after a while Uralochka captured all of them and was 3 pawns up. Reckless couldn't stop the white pawns, Uralochka queened all three and mated.

game 173, PlentyChess - Ginkgo: PlentyChess had a blocked passer on the king side in a closed position, for a very long time the engines shuffled. Something went wrong for Ginkgo in time trouble, after move 105 evals started to increase slowly. In a series of exchanges on move 139 PlentyChess reduced to a RN vs RR position, both engines queened and the game went into a tablebase queen ending which PlentyChess won after 45 more moves. 

game 177, Reckless - PlentyChess: PlentyChess moved its king without castling, it tried to find safety on the queen side and evals slowly increased. Reckless captured a pawn, after some preparation it moved a rook forward and captured a second pawn. The engines reduced to a queen ending, Reckless exchanged queens and then queened a passer to win.

game 181, Uralochka - Stormphrax: There were no exchanges after the start and Uralochka had a space advantage. Evals started to increase after Uralochka opened the center, it threatened the black king using long diagonals. Stormphrax was forced to give material to let its king escape, this only delayed the mate.

game 183, Integral - Booot: Integral gave a pawn and pushed its center pawns forward, Booot gave a bishop for the two white pawns. The engines slowly exchanged pieces until only QB vs Q remained. Integral captured a pawn and exchanged queens, the white bishop controlled Booot's pawns and Integral moved its king forward to capture the pawns and win.

game 195, PlentyChess - Igel: The center was closed with open files on both sides. The engines shuffled for a long time, in time pressure after move 85 evals started to increase. The game reached a queen ending with white a pawn up, both engines had a passer. PlentyChess managed to capture black pawns, then pushed passers to win.

Standings after RR3: Reckless +11, PlentyChess +10, Integral +9, Stormphrax +5, Booot +2, Uralochka 0, Horsie -1, Ginkgo -2, Starzix -5, Velvet -7, Igel -10, Arasan -12. After RR3 there are 3 leaders with Stormphrax a bit behind in 4th place. Booot is still in the race but it is 3 wins behind Stormphrax. Reckless lost its first game of the league against Uralochka. 

game 223, Stormphrax - Booot: Evals slowly increased in a closed position, all knights were gone and Stormphrax had a passer in the center. Stormphrax opened a file on the queen side and moved its major pieces there. The game reached a QRB vs QRB position and Stormphrax captured a pawn. In a series of exchanges Booot lost a piece and the engines reduced to a RB vs R ending. Booot lost more material, Stormphrax queened a passer and mated.

Standings with 5 rounds to go: Reckless PlentyChess +12, Integral +11, Stormphrax +7, Booot +2, Ginkgo 0, Uralochka -2, Horsie -3, Starzix -5, Velvet Igel -11, Arasan -12. At this point the three leaders have a 4 win gap to 4th place, all three will qualify but their relative standings may still change. Booot is out of the qualification race, especially after losing to Stormphrax.

game 238, Reckless - Integral: Reckless gave two pawns and exposed the black king, it then captured pawns and the game reached a QNN vs QBN position with white a pawn up. The white knights could protect each other, Reckless used the exposed black king for extra moves. After 30 moves the engines exchanged a pair of knights, 20 moves more and Reckless was 3 pawns up. Reckless exchanged queens and pushed its passers to win.

game 243, PlentyChess - Reckless: PlentyChess was a pawn up, Reckless castled long and opened the king side. PlentyChess kept its king safe and opened the queen side, the game reached a RRB vs RRN position. PlentyChess exchanged a pair of rooks and captued two more pawns, Reckless lost more material and was mated.


Sunday, July 6, 2025

Season 28 entrance league statistics

A summary statistics table of previous stages and seasons.  

Draw rate, wins

Final draw rate was 55%. 

Game termination

The three most common game termination causes were:
45% - mate
41.3% - TCEC draw rule
10.4% - 3-Fold repetition

There were no crashes in the stage. This season tablebase positions do not terminate the game.

Moves per game

Median= 78
Average= 82.0

There were 51 games longer than 100 moves, the longest was 284 moves (Stash - PlentyChess, game 176, draw). The change in game termination criteria caused games to be longer than before.

Time per game (hours)

Median= 1:05
Average= 1:03

Openings

There were variable length book openings in this stage. The first letter of the ECO codes was distributed as follows: 

The engines had almost no freedom to choose the opening variant, all of the game pairs but one repeated the ECO code and the opening variant twice.

Reverse pairs, wins

Reverse pairs, same moves

Pairs of reverse games diverged quickly, 30.8% diverged immediately out of book, 68.3% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 18 plys (Renegade - Arasan, games 15 and 135, QGD Slav, Steiner variation, two draws) 


Saturday, July 5, 2025

Season 28 entrance league

The engines that will play in the season 28 entrance league are:

relegated from season 27 league 1: PlentyChess
relegated from season 27 league 2: BlackMarlin, Arasan, Minic, DeepSjeng
played in season 27 entrance league: Renegade, Altair, Booot, Patricia, Tucano
new to TCEC (played in Swiss tournament): Integral, Starzix, sirius
returning to TCEC: Clover (season 26 league 1), ScorpioNN (season 26 league 2), Stash (season 26 entrance league)

Final standings



Integral, PlentyChess, Booot, Starzix and Arasan advance to league 2. There was a tie in 5th place, Arasan and Clover played a tiebreak match and in the 5th game pair Arasan won.

Integral won 13/15 game pairs without loss, it lost only one game against Booot. PlentyChess won 12/15 game pairs and lost only to Integral. Arasan was in 2nd place after RR1 with 7 wins and one loss, in RR2 it played as black against stronger engines and it drifted down in the table. Booot finished in third without a game pair loss and only one game loss to Integral. Starzix had 3 game pair losses but 10 wins, it finished in 4th place. With only two rounds remaining Clover was able to tie the score with Arasan, their final results were almost identical. A tiebreak match was played and Arasan won. Interestingly both Arasan and Clover lost a game to Patricia, for Patricia the win against Clover was its only game pair win in the league. 

A tiebreak was played between DeepSjeng and ScorpioNN, not sure why it was needed. DeepSjeng won the 2-game match and is officially in 11th place, ScorpioNN is in 12th. 

The 5 qualifiers will play in league 2 together with:
played in season 27 league 1: Igel, Uralochka
played in season 27 league 2: Velvet, Ginkgo, Stormphrax
new in TCEC: Reckless, Horsie (I'm not sure why these are starting in league 2, perhaps based on their results in the Swiss tournament)

Interesting games

game 4, Integral - Starzix: Starzix pushed the f pawn and its king was vulnerable. Integral pushed a pawn to g6 and threatened a king side attack. The engines reduced to a double rook ending and Integral went a pawn up. Integral used a passer on the 7th rank to reach a winning rook ending.

game 8, Patricia - Clover: Patricia controlled an open file on the queen side. After a very long shuffle the king side opened, the white queen moved forward and drove the black king to the center. Patricia had a passer on the 7th rank and active knights, Clover lost material and was eventually mated.

game 12, Stash - Minic: Minic sacrificed a knight to open the king side, it tried to attack the white king. Stash protected its king, gave the piece back and reduced to a RB vs RB ending with a pawn up. Minic lost the bishop for a passer, the game ended in mate.

game 18, Arasan - Altair: Arasan had a space advantage, it gave pawns to open both sides and placed both rooks on the 6th rank. Arasan moved a pawn to g7 and threatened the black king, Altair exchanged pieces but lost material. Arasan converted a RB vs R ending.

game 26, PlentyChess - Clover: PlentyChess opened the queen side, captured a pawn and created a passer. Clover countered with a knight sacrifice to create connected passers on the king side. Clover gave a bishop to capture all remaining white pawns, in  BBN vs N position PlentyChess captured all black pawns and mated.

game 29, BlackMarlin - Minic: BlackMarlin doubled queen and rook on the open h file, Minic countered on the queen side and won a rook for a passer. However, BlackMarlin used the exposed black king to gain material and win a QN vs Q ending.

game 34, Integral - Booot: Booot opened the queen side but its king was stuck in the center. Integral had an active rook on the queen side and it pushed pawns on the king side. Booot kept the king side closed, Integral placed a pawn on the 7th rank. Booot lost material and was mated.

game 50, sirius - Arasan: The game reached a R vs B ending, Arasan was a pawn up with connected passers and one on the 2nd rank. sirius captured one passer and blocked the other, but it couldn't find the winning moves. The game was adjudicated after a very long shuffle on move 282.

game 53, Patricia - Renegade: Patricia went a pawn up in a closed position, after a long shuffle it captured a second pawn. The engines reduced to a double bishop ending, Patricia used a passer to win.

game 69, Clover - Altair: Altair kept the king side closed, Clover captured a pawn and opened the queen side. In a series of exchanges Altair lost two knights for a rook. Clover used a passer to gain more material followed by mate.

game 70, ScorpioNN - Renegade: ScorpioNN gave a rook for a knight and captured black pawns. The game reached a RB vs RR position with 3 white pawns and all black pawns gone. ScorpioNN pushed connected passers and seemed to be winning, but it let Renegade capture a pawn and block the connected passers to hold a draw.

game 78, Arasan - Patricia: In a RR vs RB position Patricia, with no tablebase support,  blundered and exchanged rooks. The result was a 7-man win for Arasan, 80 moves long. 

game 88, Starzix - BlackMarlin: In a closed position Starzix opened the center and its two bishops threatened the black king and pieces. After a series of exchanges the game reached a R vs B ending which Starzix won.

game 94, Integral - Clover: Integral opened the center and created a passer, Clover gave a rook for a knight and tried to counter on the queen side. After exchanging pieces Integral gave back the material, it captured the black pawns on the queen side while Clover captured the center passer. In a RB vs RN position Integral pushed a queen side passer, Clover stopped it but lost its pawns on the king side. Integral pushed passers on the king side to win.

game 101, PlentyChess - Arasan: The engines exchanged pieces in a closed position, PlentyChess created a passer on the queen side and only QB vs QN were left. After exchanging queens PlentyChess created a second passer on the king side to win.

game 106, Altair - BlackMarlin: Altair captured a pawn and reduced to a QRN vs QRN position. After a long preparation Altair captured a second pawn and then converted a knight ending.

game 107, Booot - Starzix: Booot was two pawns up early in a closed position. The engines exchanged pieces until only BBN vs BBN were left, Starzix gave two pieces for the remaining white pawns. Booot captured the black pawns and mated.

game 109, Integral - PlentyChess: Integral created a queen side passer, then captured a pawn and pushed another passer to the 7th rank in the center. PlentyChess blocked the passer, regained the pawn and created a king side passer. It tried to avoid exchanging queens, eventually Integral reduced to an opposite color bishop ending. Integral lost the advanced passer but captured all black pawns, PlentyChess couldn't avoid a queening and mate.

Standings after RR1: Integral +7, Arasan +6, PlentyChess +5, Booot +3, Starzix Clover +2, BlackMarlin Renegade 0, Altair DeepSjeng -1, Tucano -2, Patricia -3, sirius ScorpioNN -4, Minic Stash -5. Integral leads with no loss and one draw with white. Arasan and PlentyChess are close behind, each with one loss and one draw with white. Booot, Starzix and Clover are in the race for the first 5 places which qualify for league 2. 

game 123, BlackMarlin - Arasan: Arasan captured a rook for a knight while BlakMarlin created advanced connected passers in the center. Arasan tried to block, BlackMarlin exchanged pieces and gave a bishop to push a passer to the 7th rank in a Q vs QR position. Arasan could not stop the queenings, it lost material and was mated.

game 134, Integral - BlackMarlin: Evals increased from the start in a closed position, on move 37 Integral went a pawn up and created a passer in the center. Gradually Integral captured all the remaning black pawns, then queened a pawn to win.

game 149, Minic - BlackMarlin: In a closed position Minic managed to create connected passers in the center. BlackMarlin gave a bishop to capture both passers and the game reached a RBN vs RN position. BlackMarlin lost a knight for another passer, Minic won in a KBN vs K ending.

game 154, Booot - Integral: Booot threatened the black king side, Integral moved its queen forward on the queen side and Booot blocked its path back. Integral gave a rook for a knight to open the block. In a QRR vs QRN position Booot captured two pawns, then reduced to a winning R vs N ending.

game 168, Integral - Arasan: Integral gave a pawn open a file on the queen side, then gave another pawn and hid its king behind a black pawn. Integral regained one pawn, it kept pressure on the queen side until Arasan gave a knight for a pawn, but Arasan's counter was weak. Integral created a passer on the queen side and exchanged pieces, it queened and mated.

game 178, PlentyChess - Starzix: PlentyChess attacked on the king side, it gave two minor pieces to expose the black king. In a series of exchanges the engines reduced to a RB vs RN position. PlentyChess was two pawns up, Starzix lost material to stop a queening and was mated.

game 198, Patricia - Arasan: Patricia gave two pawns and attacked the king side. Arasan gave a knight and exchanged pieces, the game reached a QRN vs QR position with black two pawns up. Patricia used the extra piece to capture pawns, it pushed a passer to win. 

Standings with 5 rounds to go: PlentyChess +11, Integral +10, Booot Starzix +6, Arasan +5, Clover +4, Renegade BlackMarlin Altair 0, DeepSjeng Tucano ScorpioNN Patricia -5, Minic sirius -7, Stash -8. PlentyChess and Integral have a significant lead and will probably finish in the first two places. There are 4 engines in the race for the other 3 qualification spots, and anything can happen.

Standings with 2 rounds to go: Integral +12, PlentyChess +11, Booot +8, Starzix +7, Arasan +5, Clover +4, Renegade 0, BlackMarlin Altair -1, Tucano -4, Minic DeepSjeng -6, ScorpioNN sirius Patricia -7, Stash -8. Booot and Starzix will probably qualify in places 3-4. Clover still has a chance of qualifying instead of Arasan, it has a game against Minic as white while Arasan will face Starzix as white.

Clover beat Minic, and there is a tie with Arasan with one round to go.

Arasan only drew against Starzix, there is a tie for 5th place between Arasan and Clover.

 

Tuesday, June 24, 2025

Season 27 superfinal statistics

A summary statistics table of previous stages and seasons. 

Draw rate, wins

Final draw rate was 47%.

Game termination

The three most common game termination causes were:

44% - TCEC draw rule
34% - SyzygyTB
19% - Mate

There were no crashes in the stage.

Moves per game

Median= 78.8
Average= 81.7

There were 16 games longer than 100 moves, the longest was 167 moves (Stockfish - Leela, game 32, draw).

Time per game (hours) 

Median= 4:25
Average= 4:22

Openings

There were variable length book openings in this stage chosen by Jeroen Noomen. The first letter of the ECO codes was distributed as follows:

The engines had almost no freedom to choose the opening variant, all the game pairs repeated the same ECO and the same opening variant twice.

Reverse pairs, wins 

Reverse pairs, same moves

Pairs of reverse games diverged slower than usual, 14% diverged immediately out of book, 40% of the pairs diverged at most after 1 move. The longest repeated sequence of moves was 21 plys (Leela - Stockfish games 3 and 4, Nimzo-Indian Rubinstein variation, Stockfish won as white).


Sunday, January 5, 2025

Season 27 superfinal games 91-100, season summary

Stockfish is the winner of the season 27 superfinal. The final score is 35-18 with 47 draws. In the last 10 games Stockfish won 3 more game pairs, extending its lead to 17 wins. Game 94 was an example where Stockfish saw a win and Leela's eval was close to 0, such huge eval differences are quite rare in the recent superfinals. Leela had a promising eval advantage in game 98 but Stockfish managed to reduce to a drawn ending. 

Stockfish won the first two game pairs, but then Leela won 2 of the next 3 game pairs. The reverse games in the two Leela wins ended in a Q vs R endgame fortress, in one of them Stockfish thought it was winning for a while. Stockfish led 3-2 at this stage, it seemed possible the match would be competitive. Stockfish won two more pairs, in one of them Leela had high evals but missed the win in the reverse. Leela won another game pair and the score was 5-3 after 11 game pairs, then Stockfish won 3 pairs in a row and extended the gap to +5. After 16 pairs there were 11 decisive pairs and none had two white wins, then there were two pairs with two white wins and one with a Leela win that reduced to gap to +4. This was Leela's last pair win in the match, Stockfish won 13 more to finish with a +17 gap. There were 14 pairs with two white wins, so Leela won more games but couldn't hold the reverse. In many games Stockfish spent a lot of time in the beginning of the game, more than 40 minutes for one move in some cases. It ran out of time and played on increments as these games continued, sometimes finding a complicated win that neither Leela nor the spectators believed was possible. This season Stockfish again displayed its superiority in converting difficult endgames.

Season 27 leagues started with the entrance league, with 16 engines and 5 advancing. The newcomer Ceres led the league easily, Devre (another newcomer) and BlackMarlin also advanced with almost no game pair loss. For BlackMarlin this was a little surprising based on its predicted strength. Three engines were in the race for the last two qualification spots, in the last round Halogen lost it game, PlentyChess (newcomer as well) and akimbo finished in 4th and 5th places. In league 2 Ceres again won easily and without loss, PlentyChess finished a close second with one loss. There were 5 engines with a chance of qualifying, in the last RR Devre pulled away from the group but was caught again. In the last round Devre held on to 3rd place and Uralochka finished in 4th, tied with Devre and with a small lead over the chasing engines. In league 1 there were three engines in the lead: Obsidian, Caissa and Ceres. After two RRs the three leaders were still close to each other, in RR3 Obsidian pulled away and it continued to lead until the end. Caissa had a weak RR3 and it allowed Ceres to tie the score. However in RR4 Ceres lost 3 times, Caissa also lost a game but it performed better than Ceres and managed to qualify from second place. Ceres finished in third place, the end of its first TCEC season.

In the premier division Stockfish led from the start and finished first. It won 22/28 game pairs without loss, including 3 wins against Leela and 4 draws against Obsidian. Leela was second but Obsidian and Berserk were not too far behind. In DRR3 Leela beat Obsidian and Berserk and opened a gap to finish in second place and qualify for the superfinal. Obsidian was third after DRR3 with Berserk and KomodoDragon chasing. In DRR4 Obsidian had 3 game pair losses, including against KomodoDragon and Ethereal, and only one win. Berserk was solid with one loss and 3 wins and it managed to finish third ahead of Obsidian. KomodoDragon had one win and one loss, only enough for fifth place.

For the last few seasons I have been neglecting the personal section of this season summary. The war in Gaza that started on October 7th 2023 is still ongoing, perhaps the shock I had then makes it hard for me to look back, and when the season ends I just leave the blog until the next league season. Most of the people kidnapped were returned, either dead or alive, but as of June 2025 there are still 50 held in Gaza, about 20 of which are assumed to be alive. Related events in Lebanon, Syria, Yemen and lately Iran make the war in Gaza seem small at times, but it is devastating to the people in Gaza as well as internally for Israel. My concern is for the safety of my family and my country, I have less attention for other things such as the war in Ukraine that is still raging after more than 3 years (Russia using ammunition from Iran and soldiers from North Korea, what???), or an almost war between nuclear powers Pakistan and India.

Still, I hope for a better future, and go TCEC!!

================================

Games 91-92 started with a sideline in the KID, Steiner attack variation. All pieces and pawns were on the board, the white king was in the center and the white king side pieces were not developed. In game 91 Leela castled long and exchanged a pair of bishops on the king side. Stockfish's eval came down, the white queen moved forward on the king side but the black king was safe. Stockfish captured a pawn and created a passer in the center. Leela captured a pawn and then a rook with a knight, but the knight was trapped. Before capturing the knight Stockfish moved a bishop to protect its passer. Leela captured a pawn and tried to expose the black king, Stockfish hid its king behind a white pawn. Then in a series of exchanges the engines reduced to a QR vs QBN position, the black passer was gone and Leela was up two pawns. Evals were low, after exchanging queens the game was adjudicated.

In game 92 Stockfish castled long, the black queen moved forward on the queen side and Leela's eval was unusually high for the first move, over 1.5. Stockfish immediately pushed the g pawn and Leela pushed the b pawn. The engines exchanged bishops on the king side and the white queen was on h6, Leela's eval came down while Stockfish's eval increased. Stockfish ignored Leela's threats on the queen side and prepared a king side attack. On move 17 Leela's eval jumped, Stockfish's g5 pawn attacked a knight defender on f6. 

Leela went on the attack despite the high evals. It gave the knight for a pawn and then gave the second knight to open the b file and create an advanced passer. The white king was in the corner and the black passer reached c2, but then it was Stockfish's turn to attack. Leela gave a rook for a knight to protect its king, Stockfish had time to block the black passer with its queen. After a series of exchanges the game reached a QRB vs QR position and the black c7 passer was gone. Stockfish kept the black pieces away from its king, on move 43 the engines exchanged rooks. 

Stockfish soon saw the win in its PV. It used checks by the queen to capture a few pawns and then forced a queen exchange. The game ended in a tablebase win. Stockfish wins the game pair, it leads 33-18.

Games 93-94 started with a 22-ply sideline in the Sicilian, Scheveningen, classical variation. There was one pawn exchange and all pieces were on the board, white had a space advantage. In game 93 the engines opened the d file, then in a series of exchanges the queens were off as well as minor pieces, Stockfish created a passer in the center. From move 24 the engines played out long PV agreements and evals came down. Leela captured a pawn and created a passer, the game reached a RBN vs RBN position. Stockfish pushed the passer to e2, Leela captured the passer and Stockfish captured the white passer. Both engines created a new passer, Leela captured the black passer on the 2nd rank again. Leela captured the last black pawn and was two pawns up, however evals were close to 0. The game was adjudicated after rooks were exchanged. 

In game 94 Stockfish pushed pawns on the queen side, the engines exchanged pawns, knights, bishops and queens, and opened the d file. The engines played out a long PV agreement and the game reached a RRB vs RBN position with black two pawns up. Leela had a passer on the queen side and its eval was low, Stockfish's eval was around 1.5. 

Stockfish's eval came down and moved back up, it captured the c5 pawn, the engines pushed pawns on the king side and then Stockfish moved a rook to the back rank. The engines cleared the queen side pawns, then Stockfish moved its other rook to the back rank. On move 57 Stockfish's eval jumped, the engines exchanged a pair of rooks. Stockfish was again on increments and Leela's eval did not move. Stockfish exchanged bishops and Leela's eval dropped even further. On move 64 Leela gave a pawn, Stockfish saw the win in its PV. In the 8-man position left, the contrast with Leela's eval was incredible.

Leela's eval started to react only on move 71. The white king and rook hunted the black knight, on move 79 the knight was close to being trapped and Leela gave it up. The game ended in a tablebase win. Stockfish wins the game pair, it leads 34-18.

Games 95-96 started with the Modern defense, Averbach system, played in high level human chess. White had a space advantage, all pieces and pawns were on the board and both kings were uncastled. In game 95 pawn exchanges in the center opened the e file, the engines castled in opposite directions and Leela captured a pawn on the king side. Pawn exchanges opened more files in the center, the game reached a RRN vs RRN position. Leela doubled rooks on the d file, Stockfish's eval came down and a pair of rooks was exchanged. The engines shuffled and Leela's eval also came down. There were a few pawn exchanges and knights were exchanged as well, the game was adjudicated when Leela's eval was low enough for the draw rule. In game 96 there were no exchanges after the start and both engines castled short. The engines blocked the center and a pawn exchange opened the a file. Evals came down as the engines exchanged all rooks as well as queens. The engines shuffled and there were a few pawns exchanges, the game was adjudicated after two more minor piece exchanges.

Games 97-98 started with a 17-ply sideline in the Alekhine defense, Marcozy variation. One pair of knights was exchanged, all pawns were on the board, black had a passer in the center and an eval advantage. In game 97 Leela blocked the black passer with bishops, Stockfish pushed pawns on both sides of the board. The black queen moved forward on the king side and the white king moved without castling. Stockfish's (negative) eval increased and the black queen retreated.  Stockfish pushed the g pawn to g3 and moved the king side rook forward to capture a pawn. Leela captured the g3 pawn, Stockfish gave the rook for a bishop yet Leela's eval also increased. In a pawn trade the white queen moved forward on the king side and Leela created a passer there, Stockfish castled its king long. In a series of exchanges the game reached a RRN vs RBB position, Stockfish captured the white passer and was a pawn up.

Pawn exchanges opened the queen side and Stockfish created a second passer. The black king moved forward and Stockfish pushed a passer to d3. Stockfish gave its rook for the knight and captured another pawn. 

Stockfish saw the win in its PV, it had a skewer attack on the two white rooks but refused to exchange. Stockfish pushed the second passer to a6, the white king moved to help block the white passers and the black king moved forward to support them. Leela lost a rook for one passer to avoid mate, Stockfish captured the remaining white pawns and the game ended in a tablebase win. 

In game 98 the start was similar but not identical to game 97, Stockfish blocked the black passer and Leela pushed pawns on the king side. Stockfish thought for 41 minutes on its 4th move, yet Leela chose a different continuation. The engines played out a long PV agreement, Stockfish captured a pawn on the king side, there was a minor piece exchange on the queen side and the white king moved without castling. Leela regained the pawn and castled long, the engines opened files on the king side and exchanged a pair of rooks. Stockfish's (negative) eval increased, Leela refused to exchange rooks, instead it captured two pawns and exchanged the rook for a bishop, resulting in a QRN vs QBB position with black two pawns up. Leela's (negative) eval started to increase, Leela gave a pawn on the queen side but when it didn't take back Stockfish's eval dropped. The engines exchanged queens and Leela's eval dropped as well. The game reached a B vs R ending, Leela was up two pawns with connected passers on the queen side. Leela pushed the passers forward, Stockfish blocked with its king in front and its rook behind the pawns and there was nothing Leela could do. The engines shuffled until Leela lowered its eval for the draw rule on move 93. Stockfish wins the game pair, it leads 35-18.

Games 99-100 started with a 22-ply sideline in the KID orthodox variation. The center was blocked, all pieces and pawns were on the board. In game 99 the engines exchanged pawns and a pair of knights on the queen side. Leela's eval increased, the engines opened the a file and exchanged a pair of rooks. The engines shuffled for a while and Leela's eval came down. The white king walked to the queen side and the shuffle continued until the engines exchanged rooks on move 59. The engines opened the h file, Leela's eval came down slowly. Stockfish captured a pawn and the black queen moved forward. Leela regained the pawn and captured a knight, Stockfish ended the game in a perpetual check. In game 100 Stockfish pushed pawns on the queen side until it was locked with white pawns on a6 and c6. Leela pushed pawns on the king side, the engines opened the h file but completed a diagonal pawn wall with a black pawn on h3. The engines exchanged a pair of rooks and started to shuffle. Stockfish extended the shuffle with a pawn move, evals came down. On move 126 Stockfish gave a knight for two pawns on the king side, after another shuffle the engines started to exchange pieces. The game reached a B vs N ending, Stockfish was two pawns up but evals were low and the game was adjudicated.


Thursday, January 2, 2025

Season 27 superfinal games 81-90

After 90 games Stockfish leads 32-18 with 40 draws. Stockfish won 3 game pairs and extended its lead to 14 wins. The 3 game pair wins were all long endgames where Stockfish saw the win many moves ahead and Leela was still unsure, and Stockfish played with minimal time available. Since there are only 10 games left Stockfish will win the match. Leela hasn't won a pair in the last 26 pairs. 

Games 81-82 started with a 20-ply sideline in the Sicilian Richter-Rauzer variation. The engines castled in opposite directions, there was one pawn exchange and all pieces were on the board. In game 81 the engines exchanged minor pieces, a pawn exchange opened the d file. The black queen moved forward on the king side and came back, both engines moved their major pieces to the center. Evals increased for a while, Leela's eval was over 1.5 on move 25. Stockfish thought Leela's move was a mistake and its eval dropped. In a series of exchanges the engines reduced to a QN vs QN position, Leela's eval came down as well. The engines traded pawns and created a white passer on the queen side and a black passer on the king side. Both passers raced forward, both were stopped. Leela captured a pawn but evals were low and the game was adjudicated.

In game 82 the engines repeated game 81 for 13 plys, the d file was open. Evals increased while Leela doubled rooks on the d file. A white knight blocked the file but in a series of exchanges the knight was exchanged as well as a pair of rooks. The game reached a QRB vs QRN position on move 24, the engines opened the f file as well. 

Stockfish moved its major pieces forward, Leela pushed the h pawn to avoid back rank threats. Stockfish moved its rook to the back rank and exchanged rooks. The engines traded pawns and created two white passers on the queen side and two black passers on the king side. Both engines pushed a passer forward, Stockfish captured a pawn in the center and it seemed Leela was winning the race. Leela captured the white passer and its passer was on the 2nd rank, but Stockfish captured the black knight with check, it saw the win in its PV.

It didn't seem possible for Stockfish to stop the queening as well as protect its bishop, but Stockfish was confident it could. The first set of checks ended with the white queen on g2 and Stockfish protected its bishop with the b pawn. Leela didn't have a check, next move Stockfish connected its bishop and queen on the long diagonal to prevent a queening, giving Leela a pawn. Leela gave a few checks and the white king moved forward. Stockfish pushed the black king back and the white queen moved to the 7th rank. It allowed the queening in the end, before mating. Stockfish wins the game pair, it leads 28-16.

Games 83-84 started with a rare 20-ply sideline in the Pirc defense, classical variation. All pawns and pieces were on the board, white had a space advantage. In game 83 there was a pawn exchange in the center, then a pair of knights were exchanged. Evals came down, on move 21 Leela gave a knight for a pawn and created connected passers on the queen side. Leela captured another pawn on the queen side, then a third pawn to open the d file. In a series of exchanges the engines reduced to a RB vs RRB position, Leela was down a rook but up 3 pawns. For a long while the engines mainly shuffled and made some pawn moves. On move 72 Stockfish gave a pawn, on move 81 Stockfish gave the bishop for one of the white passers. The game was adjudicated on move 99 when Leela lowered its eval for the draw rule. 

In game 84  the engines started similarly, with a pawn exchange in the center and a knight exchange, though with slightly different moves. Evals were mostly stable, the engines shuffled for a while. Stockfish pushed pawns on the king side, on move 32 Leela gave a pawn to open the center. The d file opened and the black queen moved forward. Leela regained the pawn, Stockfish's eval started to increase. In a long PV agreement there was a series of exchanges that reduced to a RR vs RB position with black a pawn up. 

Stockfish was down to increments and Leela's eval was low, it was not clear whether Stockfish's eval was real but it kept increasing. Leela created a passer on the queen side, Stockfish moved its rooks forward and captured the passer. Leela seemed to have a fortress on the king side, with the king and rook protecting the f7 pawn and the bishop on the long diagonal holding back the white king and pawns. For a very long time Stockfish moved its king and rooks to limit the black bishop. For a while Leela's eval dropped close to 0, then came back up but was still low. On move 74 Stockfish finally managed to force the black bishop away from the long diagonal. It saw the win in its PV.

Stockfish made sure the bishop stays away, on move 85 it pushed the f pawn and exchanged pawns. Then it pushed the g pawn and the black king became trapped. The game ended in a tablebase win. Stockfish wins the game pair, it leads 29-16.

Games 85-86 started with an 18-ply rare sideline in the English opening. There was one pawn exchange and all pieces were on the board, white had more space and the white king was still uncastled. In game 85 Leela exchanged minor pieces and castled its king. Leela managed to get a protected bishop to c6, evals increased slowly. On move 22 a pawn exchange on the king side weakened the black king support, a minor piece trade got the white bishop to e6 with check. The white queen attacked and Stockfish exchanged queens.

Stockfish exchanged bishops, creating a white advanced passer on e6. The black king moved to the center and captured the passer. A pawn exchange on the queen side created a black passer on the queen side, Stockfish gave a rook for a knight and reduced to a RR vs RN position on move 41.

Leela moved a rook forward and the engines traded pawns. The second white rook moved forward and Leela captured two pawns, it had 3 passers and Stockfish had 2. Both engines pushed passers forward slowly, on move 78 one white passer reached the 7th rank. Leela gave a rook and queened the passer, Stockfish had a passer on the 2nd rank while Leela queened a second passer, the game ended in mate.

In game 86 the engines repeated game 85 for 21 plys with transposition, Stockfish castled its king and moved a bishop to c6. Leela pushed pawns on the queen side, trapped the white bishop and created a passer. In a series of exchanges the white c6 bishop was exchanged as well as the queens. The game reached a RRB vs RRB position on move 27, Stockfish had a blocked passer on c7. 

Stockfish's eval slowly increased while Leela's eval stayed stable around 1. Leela captured the white passer and Stockfish opened the d file. The engines avoided exchanging rooks, there was another pawn exchange and Leela doubled rooks on the c file. Stockfish blocked the black passer, the white king moved forward and a pair of rooks was exchanged. On move 58 Leela's eval started to slowly increase, the white king kept moving forward until it reached d8, attacking the black bishop. 

Leela tried to keep its bishop, it exchanged rooks and gave pawns to save it. The game reached an opposite color bishop ending, Stockfish had a passer on the queen side and it kept the black king away. Leela captured two pawns on the king side but lost its bishop for the passer, the game ended in a tablebase win. There were two white wins in this pair, Stockfish leads 30-17.

Games 87-88 started with a line in the French Winawer, advance variation played in high level human chess. The center was blocked, all pieces and pawns were on the board and both kings were uncastled. In game 87 Stockfish thought for 42 minutes on its second move, the engines pushed pawns on the queen side, Stockfish exchanged a pair of bishops and the white king moved without castling. The engines locked the queen side, evals slowly increased as Stockfish castled long and the white king walked to the queen side. Stockfish's eval came back down a little, Leela moved its major pieces to the king side, it captured a pawn and exchanged queens and a pair of rooks. 

The black king walked back to the king side, Leela moved its knights to the queen side and its eval drifted down. On move 46 Leela pushed the g pawn to open the king side and evals jumped. After a minor piece exchange Leela created a passer on f6, the white rook moved forward and the game reached a RB vs RN position. 

Stockfish captured the white passer, Leela captured the black b and d pawns and created two more passers. Stockfish captured the white d pawn and Leela captured the black h pawn. Leela pushed the h passer and Stockfish lost material to stop it, the game ended in mate.

In game 88 Leela made a different choice on its second move, there was a bishop exchange but the white king did not move. There was a pawn exchange on the king side, the queen side stayed active. Leela walked its king to the queen side, the engines exchanged pawns and a pair of knights in the center and evals increased. Leela moved its queen forward on the queen side and Stockfish blocked its retreat. A series of exchanges opened the c file, Stockfish created a passer on the d file and Leela had one on the a file. On move 36 the game reached a QRB vs QRN position. 

The white king was under threat but safe enough. Stockfish moved its major pieces forward on the king side and captured 3 pawns. Leela captured one pawn on the queen side but the white passers were much more dangerous than the black ones. Both minor pieces were captured, Stockfish saw the win in its PV. Leela captured a white passer on the 7th rank, there were more exchanges and the game ended in a tablebase win. There were two white wins in this pair, Stockfish leads 31-18.

Games 89-90 started with a 20-ply sideline in the open Ruy Lopez, Bernstein variation. There was one pawn exchange, all pieces were on the board and the black king was still uncastled. In game 89 Stockfish captured a pawn in the center, Leela used a pin to captured a pawn on the queen side. Leela opened the a file, the engines exchanged a pair of rooks and minor pieces. Evals came down, Leela was a pawn up but Stockfish had a bishop pair advantage. The game reached a QNN vs QBB position, in another series of exchanges the engines reduced to a N vs B ending on move 35. Leela's eval was too high for the draw rule, the game continued for 30 moves before adjudication.

In game 90 the engines exchanged pawns on the queen side and a pair of bishops. Stockfish pushed the e pawn and exchanged it, the black king moved without castling. After move 17 Stockfish's eval started to increase while Leela's eval drifted down. Stockfish doubled queen and rook on the a file, a series of exchanges started on move 23 and Leela's eval jumped. The engines exchanged knights and rooks and opened the a and b files.

The white queen moved to the back rank and pinned the bishop. All minor pieces were exchanged and the game reached a QR vs QR position with white a pawn up. Stockfish avoided exchanges and arranged its pawns, its eval increasing quickly while Leela's eval stayed stable. On move 46 the rooks were exchanged. 

Stockfish's eval was very high, again it was down to increments. Leela's eval did not increase, Stockfish repeated checks, n move 63 there was a pawn exchange on the king side. Leela chased the white king across the board and Leela's eval started to increase. On move 99 the white king reached e6, Stockfish saw the win in its PV. There were a few pawn trades and the game ended in a tablebase win. Stockfish wins the game pair, it leads 32-18.