Algorithm to determine what a "human" move is

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Dann Corbit, Harvey Williamson

Peperoni
Posts: 72
Joined: Sun Nov 01, 2020 5:27 pm
Full name: Richard Porti

Algorithm to determine what a "human" move is

Post by Peperoni »

Hello,

Is there a more or less accurate algorithm that could determine if a move is more a "human" move or an "engine" move?

Thanks,
Nay Lin Tun
Posts: 708
Joined: Mon Jan 16, 2012 6:34 am

Re: Algorithm to determine what a "human" move is

Post by Nay Lin Tun »

This is lichess cheat detection system. ( please note,, you need millions of human games data for, time usage,accuracy, rapid rise in elo etc). Without a chess server, the code is incomplete and not powerful.


https://github.com/clarkerubber/irwin
Peperoni
Posts: 72
Joined: Sun Nov 01, 2020 5:27 pm
Full name: Richard Porti

Re: Algorithm to determine what a "human" move is

Post by Peperoni »

Hello Nay Lin Tun,

Thanks for your answer. I was more thinking about detecting if in a game between Engines, which moves could strong players find and which ones they could never find.
The idea was not to apply that to a specific chess player :-)
Nay Lin Tun
Posts: 708
Joined: Mon Jan 16, 2012 6:34 am

Re: Algorithm to determine what a "human" move is

Post by Nay Lin Tun »

Accuracy is pretty much useless in a single game. ( A 2000+ player's accuracy in closed position in stonewall will be 95%+ accuracy, but the same player in open tactical position accuracy will be 50-70%).

Time usage is the critical data. In fact, for cheat detection, you need combination of a lot of factors in a series of games.
Dann Corbit
Posts: 12482
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Algorithm to determine what a "human" move is

Post by Dann Corbit »

A famous AI test was to put a computer and a GM on the other side of the game (hidden of course) against an opponent.
AI was supposed to be achieved when you could not tell the difference.
Kind of flawed, of course, but interesting to think about
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Algorithm to determine what a "human" move is

Post by Ferdy »

Peperoni wrote: Sun Nov 08, 2020 11:13 pm Hello Nay Lin Tun,

Thanks for your answer. I was more thinking about detecting if in a game between Engines, which moves could strong players find and which ones they could never find.
The idea was not to apply that to a specific chess player :-)
Granting that a strong player can match Sf12 on a 1 sec/move on certain hardware or around depth 16 to 20 per move or so, we can analyze the game played by engines at that move limit.

As an example I have analyzed couple of games from the tcec 19 sf with Sf12. Yellow is for the move from the game. Green is Sf12's best at 1 sec/move. If color is yellow-green that means the move in the game and Sf12 best move are the same.

Image

Sample games. View the games with interface that supports graphics like Chessbase/Fritz and Hiarcs Chess Explorer and perhaps others.

[Event "TCEC Season 19 - Superfinal"]
[Site "https://tcec-chess.com"]
[Date "2020.10.08"]
[Round "56.1"]
[White "Stockfish 202009282242_nn-baeb9ef2d183"]
[Black "LCZero v0.26.3-rc1_T60.SV.JH.92-190"]
[Result "1-0"]
[BlackElo "3542"]
[ECO "C30"]
[GameDuration "03:28:08"]
[GameEndTime "2020-10-09T07:17:19.335 UTC"]
[GameStartTime "2020-10-09T03:49:11.274 UTC"]
[Opening "KGD"]
[Termination "adjudication"]
[TerminationDetails "TCEC win rule"]
[TimeControl "7200+10"]
[Variation "Norwalde variation"]
[WhiteElo "3564"]

{ [%cal Ge2e4,Ye2e4] } 1.e4 { [%cal Gc7c5,Ye7e5] book, mb=+0+0+0+0+0, } 1...e5 { [%cal Gg1f3,Yf2f4] book, mb=+0+0+0+0+0, } ( 1...c5 2.Nf3 e6 { -0.24/18 1.004s } ) 2.f4 { [%cal Ge5f4,Yd8f6] book, mb=+0+0+0+0+0, } ( 2.Nf3 Nc6 { 0.16/16 1.004s } ) 2...Qf6 { [%cal Gb1c3,Yb1c3] book, mb=+0+0+0+0+0, } ( 2...exf4 3.Nf3 { 0.36/17 1.003s } ) 3.Nc3 { [%cal Ge5f4,Ye5f4] } 3...exf4 { [%cal Gg1f3,Yg1f3] } 4.Nf3 { [%cal Gd7d6,Yd7d6] } 4...d6 { [%cal Gc3d5,Yc3d5] } 5.Nd5 { [%cal Gf6d8,Yf6d8] } 5...Qd8 { [%cal Gd5f4,Yd5f4] } 6.Nxf4 { [%cal Gg7g5,Yg8f6] } 6...Nf6 { [%cal Gf1c4,Yf1c4] } ( 6...g5 7.Nd5 g4 { -0.99/19 1.001s } ) 7.Bc4 { [%cal Gf8e7,Yf8e7] } 7...Be7 { [%cal Gd1e2,Yd1e2] } 8.Qe2 { [%cal Gc7c5,Yc7c5] } 8...c5 { [%cal Gb2b3,Yb2b3] } 9.b3 { [%cal Gb8c6,Ya7a6] } 9...a6 { [%cal Ga2a4,Ya2a4] } ( 9...Nc6 10.Bb2 { -1.25/18 1.001s } ) 10.a4 { [%cal Gb8c6,Yb8c6] } 10...Nc6 { [%cal Ge1g1,Yc1b2] } 11.Bb2 { [%cal Ge8g8,Ye8g8] } ( 11.O-O { 1.33/19 1.001s } ) 11...O-O { [%cal Ge1g1,Ye1g1] } 12.O-O { [%cal Gf6g4,Yc8g4] } 12...Bg4 { [%cal Gh2h3,Yh2h3] } ( 12...Ng4 13.h3 { -1.27/19 1.004s } ) 13.h3 { [%cal Gf6h5,Yg4f3] } 13...Bxf3 { [%cal Gf1f3,Ye2f3] } ( 13...Nh5 14.Nd5 Be6 { -0.98/19 1.002s } ) 14.Qxf3 { [%cal Gf6d7,Ya8b8] } ( 14.Rxf3 Nd7 { 1.15/18 1.001s } ) 14...Rb8 { [%cal Gf3e3,Ya4a5] } ( 14...Nd7 { -1.27/20 1.003s } ) 15.a5 { [%cal Gf6d7,Yg8h8] } ( 15.Qe3 { 1.6/17 1.002s } ) 15...Kh8 { [%cal Gb2c3,Yf3g3] } ( 15...Nd7 16.Nd5 Nde5 { -1.18/19 1.002s } ) 16.Qg3 { [%cal Gc6b4,Yc6e5] } ( 16.Bc3 Nd7 17.Nd5 { 1.36/19 1.003s } ) 16...Ne5 { [%cal Gd2d3,Yg3e3] } ( 16...Nb4 17.Nd5 { -1.65/18 1.001s } ) 17.Qe3 { [%cal Gf6d7,Yf6d7] } ( 17.d3 Ng8 { 1.57/20 1.001s } ) 17...Nfd7 { [%cal Gf4d5,Yf4h5] } 18.Nh5 { [%cal Gg7g6,Ye7g5] } ( 18.Nd5 Bg5 19.Qe2 { 1.38/21 1.001s } ) 18...Bg5 { [%cal Ge3g3,Ye3g3] } ( 18...g6 19.Nf4 { -1.42/17 1.001s } ) 19.Qg3 { [%cal Gg7g6,Yg5h6] } 19...Bh6 { [%cal Gb2c3,Yc4d5] } ( 19...g6 20.Nf4 { -1.44/19 1.002s } ) 20.Bd5 { [%cal Gg7g6,Yg7g6] } ( 20.Bc3 Qe7 { 1.37/19 1.002s } ) 20...g6 { [%cal Gh5f4,Yh5f4] } 21.Nf4 { [%cal Gh6g7,Yh6g7] } 21...Bg7 { [%cal Gb2c3,Yb2c3] } 22.Bc3 { [%cal Gd8e7,Yd7f6] } 22...Nf6 { [%cal Ga1e1,Ya1e1] } ( 22...Qe7 23.Rf2 { -1.33/19 1.001s } ) 23.Rae1 { [%cal Gd8e7,Yb7b6] } 23...b6 { [%cal Ga5b6,Ya5b6] } ( 23...Qe7 24.b4 b6 { -1.38/18 1.001s } ) 24.axb6 { [%cal Gd8b6,Yd8b6] } 24...Qxb6 { [%cal Gg1h1,Yg1h1] } 25.Kh1 { [%cal Gb8e8,Yb8e8] } 25...Rbe8 { [%cal Gd2d3,Yd2d3] } 26.d3 { [%cal Ge8e7,Yh7h6] } 26...h6 { [%cal Gd5c4,Yd5c4] } ( 26...Re7 { -1.74/18 1.003s } ) 27.Bc4 { [%cal Gh8h7,Yh8h7] } 27...Kh7 { [%cal Gf4d5,Yf4d5] } 28.Nd5 { [%cal Gf6d5,Yf6d5] } 28...Nxd5 { [%cal Gc4d5,Yc4d5] } 29.Bxd5 { [%cal Ge8e7,Ye8e7] } 29...Re7 { [%cal Ge1d1,Ye1a1] } 30.Ra1 { [%cal Ge7d7,Ye7a7] } ( 30.Rd1 Rd7 { 1.55/20 1.002s } ) 30...Ra7 { [%cal Ga1a4,Yf1f4] } ( 30...Rd7 31.Qh4 Ra7 { -1.4/20 1.001s } ) 31.Rf4 { [%cal Gb6d8,Yb6d8] } ( 31.Ra4 { 1.62/20 1.002s } ) 31...Qd8 { [%cal Ga1f1,Ya1f1] } 32.Raf1 { [%cal Ga6a5,Ya6a5] } 32...a5 { [%cal Gd3d4,Yd3d4] } 33.d4 { [%cal Gc5d4,Yc5d4] } 33...cxd4 { [%cal Gc3d4,Yc3d4] } 34.Bxd4 { [%cal Ga7d7,Ya7d7] } 34...Rd7 { [%cal Gg3e3,Yg3e3] } 35.Qe3 { [%cal Gh6h5,Yh6h5] } 35...h5 { [%cal Gf4f2,Yf4f2] } 36.R4f2 { [%cal Gd8h4,Yg7h6] } 36...Bh6 { [%cal Ge3e2,Ye3e2] } ( 36...Qh4 37.Kg1 { -2.29/17 1.004s } ) 37.Qe2 { [%cal Gh6g7,Yh6g7] } 37...Bg7 { [%cal Ge2e3,Yc2c3] } 38.c3 { [%cal Gd8c7,Yd8c7] } ( 38.Qe3 Bh6 { 1.91/20 1.003s } ) 38...Qc7 { [%cal Ge2b5,Yg2g4] } 39.g4 { [%cal Gh5g4,Yh5g4] } ( 39.Qb5 Re7 { 1.35/18 1.003s } ) 39...hxg4 { [%cal Gh3g4,Yh3g4] } 40.hxg4 { [%cal Gf8h8,Yf8h8] } 40...Rh8 { [%cal Gf2h2,Yh1g1] } 41.Kg1 { [%cal Gh7g8,Ya5a4] } ( 41.Rh2+ Kg8 42.Rxh8+ { 1.25/20 1.002s } ) 41...a4 { [%cal Gb3a4,Yb3a4] } ( 41...Kg8 42.Bxe5 { -2.5/18 1.001s } ) 42.bxa4 { [%cal Gh7g8,Yh7g8] } 42...Kg8 { [%cal Gd4e5,Yd4e5] } 43.Bxe5 { [%cal Gg7e5,Yg7e5] } 43...Bxe5 { [%cal Gd5f7,Yd5f7] } 44.Bxf7+ { [%cal Gg8g7,Yg8g7] } 44...Kg7 { [%cal Gf7e6,Yf7e6] } 45.Be6 { [%cal Gh8c8,Yh8c8] } 45...Rc8 { [%cal Gf2f7,Yg4g5] } 46.g5 { [%cal Gc7c3,Ye5c3] } ( 46.Rf7+ Rxf7 47.Rxf7+ { 5.01/19 1.001s } ) 46...Bxc3 { [%cal Gg1g2,Yg1g2] } ( 46...Qxc3 47.Bxd7 { -5.07/20 1.001s } ) 47.Kg2 { [%cal Gc3d4,Yc3d4] } 47...Bd4 { [%cal Ge2f3,Ye2f3] } 48.Qf3 { [%cal Gc7c3,Yc7d8] } 48...Qd8 { [%cal Gf3f7,Yf3f7] } ( 48...Qc3 49.Bxd7 { -9.31/20 1.002s } ) 49.Qf7+ { [%cal Gd7f7,Yd7f7] } 49...Rxf7 { [%cal Gf2f7,Yf2f7] } 50.Rxf7+ { [%cal Gg7h8,Yg7h8] } 50...Kh8 1-0

[Event "TCEC Season 19 - Superfinal"]
[Site "https://tcec-chess.com"]
[Date "2020.10.10"]
[Round "67.1"]
[White "LCZero v0.26.3-rc1_T60.SV.JH.92-190"]
[Black "Stockfish 202009282242_nn-baeb9ef2d183"]
[Result "1-0"]
[BlackElo "3564"]
[ECO "B60"]
[GameDuration "04:23:19"]
[GameEndTime "2020-10-11T03:42:04.416 UTC"]
[GameStartTime "2020-10-10T23:18:45.274 UTC"]
[Opening "Sicilian"]
[Termination "adjudication"]
[TerminationDetails "TCEC win rule"]
[TimeControl "7200+10"]
[Variation "Richter-Rauzer"]
[WhiteElo "3542"]

{ [%cal Ge2e4,Ye2e4] } 1.e4 { [%cal Ge7e5,Yc7c5] book, mb=+0+0+0+0+0, } 1...c5 { [%cal Gg1f3,Yg1f3] book, mb=+0+0+0+0+0, } ( 1...e5 { -0.25/18 1.003s } ) 2.Nf3 { [%cal Ge7e6,Yb8c6] book, mb=+0+0+0+0+0, } 2...Nc6 { [%cal Gd2d4,Yd2d4] book, mb=+0+0+0+0+0, } ( 2...e6 3.d4 cxd4 { -0.35/19 1.002s } ) 3.d4 { [%cal Gc5d4,Yc5d4] book, mb=+0+0+0+0+0, } 3...cxd4 { [%cal Gf3d4,Yf3d4] book, mb=-1+0+0+0+0, } 4.Nxd4 { [%cal Ge7e6,Yg8f6] book, mb=+0+0+0+0+0, } 4...Nf6 { [%cal Gb1c3,Yb1c3] book, mb=+0+0+0+0+0, } ( 4...e6 5.Nc3 { -0.5/18 1.001s } ) 5.Nc3 { [%cal Gd7d6,Yd7d6] book, mb=+0+0+0+0+0, } 5...d6 { [%cal Gc1g5,Yc1g5] book, mb=+0+0+0+0+0, } 6.Bg5 { [%cal Ge7e6,Yd8b6] book, mb=+0+0+0+0+0, } 6...Qb6 { [%cal Gg5e3,Yd4b3] book, mb=+0+0+0+0+0, } ( 6...e6 { -0.25/18 1.001s } ) 7.Nb3 { [%cal Ge7e6,Ye7e6] book, mb=+0+0+0+0+0, } ( 7.Be3 a6 { 0.6/17 1.003s } ) 7...e6 { [%cal Gg5f4,Yg5f4] book, mb=+0+0+0+0+0, } 8.Bf4 { [%cal Gc6e5,Yc6e5] book, mb=+0+0+0+0+0, } 8...Ne5 { [%cal Gf4e3,Yf4e3] book, mb=+0+0+0+0+0, } 9.Be3 { [%cal Gb6c7,Yb6c7] } 9...Qc7 { [%cal Gf2f4,Yf2f4] } 10.f4 { [%cal Ge5c6,Ye5c6] } 10...Nc6 { [%cal Gg2g4,Yg2g4] } 11.g4 { [%cal Gd6d5,Yd6d5] } 11...d5 { [%cal Ge4e5,Ye4e5] } 12.e5 { [%cal Gf6d7,Yf6d7] } 12...Nd7 { [%cal Gc3b5,Yc3b5] } 13.Nb5 { [%cal Gc7b8,Yc7b8] } 13...Qb8 { [%cal Gh2h4,Yh2h4] } 14.h4 { [%cal Ga7a6,Yf8e7] } 14...Be7 { [%cal Gg4g5,Yg4g5] } ( 14...a6 15.N5d4 { -1.46/16 1.001s } ) 15.g5 { [%cal Ga7a6,Ya7a6] } 15...a6 { [%cal Gb5d4,Yb5d4] } 16.N5d4 { [%cal Gb8c7,Yb8c7] } 16...Qc7 { [%cal Gd1d2,Yd1d2] } 17.Qd2 { [%cal Gd7c5,Yd7c5] } 17...Nc5 { [%cal Gb3c5,Ye1c1] } 18.O-O-O { [%cal Gc5e4,Yc6d4] } ( 18.Nxc5 Bxc5 { 1.27/20 1.002s } ) 18...Nxd4 { [%cal Gd2d4,Ye3d4] } ( 18...Ne4 { -0.95/18 1.003s } ) 19.Bxd4 { [%cal Gb7b6,Yb7b6] } ( 19.Qxd4 Ne4 20.Bd3 { 1.2/17 1.002s } ) 19...b6 { [%cal Gd4e3,Yc1b1] } 20.Kb1 { [%cal Ga6a5,Ya6a5] } ( 20.Be3 Ne4 { 0.89/17 1.003s } ) 20...a5 { [%cal Ga2a3,Ya2a3] } 21.a3 { [%cal Ga5a4,Ya5a4] } 21...a4 { [%cal Gb3c1,Yb3c1] } 22.Nc1 { [%cal Gc5e4,Yc8a6] } 22...Ba6 { [%cal Gf1a6,Yc1d3] } ( 22...Ne4 23.Qg2 Ba6 { -1.18/19 1.001s } ) 23.Nd3 { [%cal Gc5e4,Yg7g6] } ( 23.Bxa6 Rxa6 24.Ne2 { 1.48/19 1.001s } ) 23...g6 { [%cal Gh4h5,Yh4h5] } ( 23...Ne4 { -0.91/18 1.002s } ) 24.h5 { [%cal Gc5e4,Yh8f8] } 24...Rf8 { [%cal Gd2e3,Yd2f2] } ( 24...Ne4 25.Qe3 Rc8 { -2.07/18 1.001s } ) 25.Qf2 { [%cal Gc5e4,Yc5e4] } ( 25.Qe3 Rc8 { 2.4/15 1.002s } ) 25...Ne4 { [%cal Gf2e3,Yf2e3] } 26.Qe3 { [%cal Ga6c4,Ya6c4] } 26...Bc4 { [%cal Gb1a1,Yb1a1] } 27.Ka1 { [%cal Gc7c6,Yc7c6] } 27...Qc6 { [%cal Gd4b6,Yd4b6] } 28.Bxb6 { [%cal Ge4g3,Ye4g3] } 28...Ng3 { [%cal Gh1h2,Yh1h2] } 29.Rh2 { [%cal Ga8c8,Yg3f1] } 29...Nxf1 { [%cal Gd1f1,Yd1f1] } ( 29...Rc8 30.Bh3 Rh8 { -2.05/17 1.001s } ) 30.Rxf1 { [%cal Gc4d3,Ya8c8] } 30...Rc8 { [%cal Gf1d1,Yb6d4] } ( 30...Bxd3 { -1.12/19 1.003s } ) 31.Bd4 { [%cal Gc6b5,Ye8d7] } ( 31.Rd1 Bxd3 { 1.77/18 1.003s } ) 31...Kd7 { [%cal Gf1h1,Yf1d1] } ( 31...Qb5 { -1.88/20 1.002s } ) 32.Rd1 { [%cal Gc4d3,Yc4d3] } ( 32.Rfh1 Bxd3 { 2.07/17 1.001s } ) 32...Bxd3 { [%cal Ge3d3,Ye3d3] } 33.Qxd3 { [%cal Gc8c7,Yc8c7] } 33...Rc7 { [%cal Ga1b1,Ya1b1] } 34.Kb1 { [%cal Gf8c8,Yf8c8] } 34...Rfc8 { [%cal Gh5g6,Yd1d2] } 35.Rdd2 { [%cal Gc6c4,Yc8b8] } ( 35.hxg6 hxg6 { 2.09/22 1.004s } ) 35...Rb8 { [%cal Gh5g6,Yh5g6] } ( 35...Qc4 36.Qxc4 { -1.8/22 1.001s } ) 36.hxg6 { [%cal Gh7g6,Yh7g6] } 36...hxg6 { [%cal Gh2h7,Yh2h4] } 37.Rh4 { [%cal Gb8c8,Yb8f8] } ( 37.Rh7 Rf8 { 1.81/20 1.004s } ) 37...Rf8 { [%cal Gh4h7,Yh4h3] } ( 37...Rbc8 38.Rh7 Rf8 { -2.01/21 1.003s } ) 38.Rh3 { [%cal Ge7c5,Yf8b8] } ( 38.Rh7 { 2.42/21 1.001s } ) 38...Rb8 { [%cal Gh3h7,Yh3h2] } ( 38...Bc5 39.Rh4 Bxd4 { -1.82/19 1.002s } ) 39.Rhh2 { [%cal Gb8f8,Yb8c8] } ( 39.Rh7 Rf8 40.Ka1 { 2.46/21 1.001s } ) 39...Rbc8 { [%cal Gh2h7,Yd3e2] } ( 39...Rf8 40.Rh7 Rb7 { -2.35/21 1.001s } ) 40.Qe2 { [%cal Gc6c4,Yc8f8] } ( 40.Rh7 Rf8 41.Ka2 { 2.25/21 1.002s } ) 40...Rf8 { [%cal Gh2h7,Ye2d3] } ( 40...Qc4 41.Qxc4 { -1.88/22 1.003s } ) 41.Qd3 { [%cal Ge7c5,Yf8b8] } ( 41.Rh7 { 2.31/19 1.001s } ) 41...Rb8 { [%cal Gh2h7,Yh2h6] } ( 41...Bc5 { -1.77/18 1.001s } ) 42.Rh6 { [%cal Gb8f8,Yb8c8] } ( 42.Rh7 Rf8 { 2.17/20 1.002s } ) 42...Rbc8 { [%cal Gh6h7,Yd3e2] } ( 42...Rf8 43.Rh7 { -2.38/22 1.001s } ) 43.Qe2 { [%cal Gc6c4,Yc6b7] } ( 43.Rh7 Rf8 44.Rdh2 { 2.32/21 1.003s } ) 43...Qb7 { [%cal Gh6h7,Yh6h3] } ( 43...Qc4 44.Qxc4 Rxc4 { -1.67/22 1.002s } ) 44.Rh3 { [%cal Gb7c6,Yc8b8] } ( 44.Rh7 { 2.22/23 1.002s } ) 44...Rb8 { [%cal Gh3h7,Ye2d3] } ( 44...Qc6 45.Rh7 Rf8 { -2.06/21 1.001s } ) 45.Qd3 { [%cal Gb8f8,Yb7c6] } ( 45.Rh7 Rf8 46.Qd3 { 2.37/22 1.001s } ) 45...Qc6 { [%cal Gh3h7,Yh3h2] } ( 45...Rf8 46.Rh7 { -2.45/21 1.001s } ) 46.Rhh2 { [%cal Gb8f8,Yb8f8] } ( 46.Rh7 Rf8 { 2.19/21 1.001s } ) 46...Rf8 { [%cal Gh2h4,Yh2h1] } 47.Rh1 { [%cal Ge7c5,Yd7c8] } ( 47.Rh4 { 2.17/22 1.001s } ) 47...Kc8 { [%cal Gd2h2,Yh1h3] } ( 47...Bc5 48.Rh7 { -2.26/19 1.002s } ) 48.Rh3 { [%cal Gc8b8,Yc8d7] } ( 48.Rdh2 Kd7 { 1.96/21 1.002s } ) 48...Kd7 { [%cal Gh3h4,Yh3h4] } ( 48...Kb8 49.Rdh2 { -2.39/20 1.002s } ) 49.Rh4 { [%cal Gc7b7,Yc7b7] } 49...Rb7 { [%cal Gb1a2,Yh4h3] } 50.Rh3 { [%cal Gf8b8,Yb7c7] } ( 50.Ka2 { 2.06/21 1.001s } ) 50...Rc7 { [%cal Gh3h4,Yh3h1] } ( 50...Rfb8 51.Rh6 Rf8 { -2.02/24 1.001s } ) 51.Rh1 { [%cal Ge7c5,Yd7c8] } ( 51.Rh4 Rb7 52.Ka2 { 1.93/23 1.001s } ) 51...Kc8 { [%cal Gd2h2,Yh1h7] } ( 51...Bc5 52.Rh7 { -2.0/21 1.002s } ) 52.Rh7 { [%cal Gc8b7,Yc8d7] } ( 52.Rdh2 Kd7 53.Rh8 { 2.0/23 1.002s } ) 52...Kd7 { [%cal Gh7g7,Yh7g7] } ( 52...Kb7 { -1.94/22 1.001s } ) 53.Rg7 { [%cal Gd7e8,Yd7e8] } 53...Ke8 { [%cal Gd2h2,Yd2h2] } 54.Rh2 { [%cal Ge7c5,Yc6c4] } 54...Qc4 { [%cal Gh2h4,Yd3d1] } ( 54...Bc5 55.Bxc5 Qxc5 { -2.0/21 1.003s } ) 55.Qd1 { [%cal Ge7c5,Yc7c6] } ( 55.Rh4 Kd7 56.Rhh7 { 2.15/20 1.002s } ) 55...Rc6 { [%cal Gb2b4,Yb2b3] } ( 55...Bc5 56.Bxc5 Rxc5 { -2.28/18 1.002s } ) 56.b3 { [%cal Ga4b3,Ya4b3] } ( 56.b4 axb3 57.cxb3 { 3.02/21 1.002s } ) 56...axb3 { [%cal Gc2b3,Yc2b3] } 57.cxb3 { [%cal Gc4a6,Yc4b5] } 57...Qb5 { [%cal Gd4b2,Yb1a2] } ( 57...Qa6 58.a4 Qa5 { -2.98/20 1.001s } ) 58.Ka2 { [%cal Gc6a6,Ye8d8] } ( 58.Bb2 { 3.58/18 1.002s } ) 58...Kd8 { [%cal Gd4b2,Yd4b2] } ( 58...Ra6 59.a4 Qb4 { -3.12/19 1.002s } ) 59.Bb2 { [%cal Gd8d7,Yb5c5] } 59...Qc5 { [%cal Gd1d2,Yd1d4] } ( 59...Kd7 60.Rhh7 Ke8 { -2.91/20 1.002s } ) 60.Qd4 { [%cal Gc5a5,Yc6c7] } ( 60.Qd2 Rc7 { 2.99/18 1.003s } ) 60...Rc7 { [%cal Gd4c5,Yg7h7] } ( 60...Qa5 61.Qd2 { -2.89/19 1.002s } ) 61.Rgh7 { [%cal Gd8c8,Yc5c6] } ( 61.Qxc5 Bxc5 { 3.07/20 1.002s } ) 61...Qc6 { [%cal Gh7h3,Yh7h3] } ( 61...Kc8 62.Rh8 Rxh8 { -2.75/20 1.002s } ) 62.R7h3 { [%cal Ge7c5,Ye7c5] } 62...Bc5 { [%cal Gd4d2,Yd4d1] } 63.Qd1 { [%cal Gc6b6,Yc5e7] } ( 63.Qd2 Qb6 { 3.0/19 1.003s } ) 63...Be7 { [%cal Gh3c3,Yh3c3] } ( 63...Qb6 64.Rc2 { -3.35/18 1.001s } ) 64.Rc3 { [%cal Gc6b6,Yc6b6] } 64...Qb6 { [%cal Gc3c7,Yc3c7] } 65.Rxc7 { [%cal Gd8c7,Yb6c7] } 65...Qxc7 { [%cal Gh2c2,Yh2c2] } ( 65...Kxc7 66.Qd4 { -3.84/21 1.001s } ) 66.Rc2 { [%cal Gc7a5,Yc7a5] } 66...Qa5 { [%cal Ga3a4,Ya3a4] } 67.a4 { [%cal Gd8d7,Yd8d7] } 67...Kd7 { [%cal Gb2a3,Yb2a3] } 68.Ba3 { [%cal Ge7b4,Ye7b4] } 68...Bb4 { [%cal Gc2c4,Yd1d4] } 69.Qd4 { [%cal Gf8b8,Yf8b8] } ( 69.Rc4 { 4.56/22 1.001s } ) 69...Rb8 { [%cal Ga3b4,Ya3b4] } 70.Bxb4 { [%cal Ga5b4,Ya5b4] } 70...Qxb4 { [%cal Gd4b4,Yd4b4] } 71.Qxb4 { [%cal Gb8b4,Yb8b4] } 71...Rxb4 { [%cal Gc2c1,Ya2a3] } 72.Ka3 { [%cal Gb4f4,Yb4f4] } ( 72.Rc1 Rxf4 73.a5 { 5.64/25 1.001s } ) 72...Rxf4 { [%cal Ga4a5,Ya4a5] } 73.a5 { [%cal Gd5d4,Yd5d4] } 73...d4 { [%cal Gc2c4,Yc2c4] } 74.Rc4 { [%cal Gf4e4,Yf4f1] } 74...Rf1 { [%cal Gc4d4,Yc4d4] } ( 74...Re4 75.a6 { -6.06/23 1.001s } ) 75.Rxd4+ { [%cal Gd7c6,Yd7c7] } 75...Kc7 { [%cal Ga3a4,Ya3a4] } ( 75...Kc6 { -6.42/23 1.002s } ) 76.Ka4 { [%cal Gf1f5,Yc7c6] } 76...Kc6 { [%cal Gd4d6,Yd4c4] } ( 76...Rf5 77.b4 { -7.56/21 1.001s } ) 77.Rc4+ { [%cal Gc6d5,Yc6d5] } ( 77.Rd6+ Kc7 78.Kb5 { 8.81/24 1.001s } ) 77...Kd5 { [%cal Ga5a6,Ya4b5] } 78.Kb5 { [%cal Gd5e5,Yd5e5] } ( 78.a6 { 7.37/22 1.001s } ) 78...Kxe5 { [%cal Ga5a6,Ya5a6] } 79.a6 1-0

[Event "TCEC Season 19 - Superfinal"]
[Site "https://tcec-chess.com"]
[Date "2020.10.02"]
[Round "12.1"]
[White "Stockfish 202009282242_nn-baeb9ef2d183"]
[Black "LCZero v0.26.3-rc1_T60.SV.JH.92-190"]
[Result "1-0"]
[BlackElo "3542"]
[ECO "A80"]
[GameDuration "03:00:19"]
[GameEndTime "2020-10-02T10:44:13.761 UTC"]
[GameStartTime "2020-10-02T07:43:54.274 UTC"]
[Opening "Dutch, 2.Bg5 variation"]
[Termination "adjudication"]
[TerminationDetails "TCEC win rule"]
[TimeControl "7200+10"]
[WhiteElo "3564"]

{ [%cal Ge2e4,Yd2d4] } 1.d4 { [%cal Gg8f6,Yf7f5] book, mb=+0+0+0+0+0, } ( 1.e4 c5 { 0.11/17 1.001s } ) 1...f5 { [%cal Gc2c4,Yc1g5] book, mb=+0+0+0+0+0, } ( 1...Nf6 2.c4 e6 { -0.23/19 1.002s } ) 2.Bg5 { [%cal Gg7g6,Yg7g6] book, mb=+0+0+0+0+0, } ( 2.c4 Nf6 { 0.58/19 1.003s } ) 2...g6 { [%cal Ge2e3,Yb1c3] book, mb=+0+0+0+0+0, } 3.Nc3 { [%cal Gf8g7,Yf8g7] book, mb=+0+0+0+0+0, } ( 3.e3 Bg7 4.Nc3 { 0.8/18 1.001s } ) 3...Bg7 { [%cal Ge2e3,Yg1f3] book, mb=+0+0+0+0+0, } 4.Nf3 { [%cal Gg8f6,Yh7h6] book, mb=+0+0+0+0+0, } ( 4.e3 d6 5.Bc4 { 0.85/18 1.001s } ) 4...h6 { [%cal Gg5d2,Yg5d2] book, mb=+0+0+0+0+0, } ( 4...Nf6 { -0.58/17 1.002s } ) 5.Bd2 { [%cal Gd7d5,Yd7d5] } 5...d5 { [%cal Ge2e3,Ye2e3] } 6.e3 { [%cal Ge7e6,Yb8c6] } 6...Nc6 { [%cal Gf1b5,Yf1b5] } ( 6...e6 { -1.0/19 1.004s } ) 7.Bb5 { [%cal Gd8d6,Yd8d6] } 7...Qd6 { [%cal Gc3e2,Yc3e2] } 8.Ne2 { [%cal Gg8f6,Yg8f6] } 8...Nf6 { [%cal Gf3e5,Yf3e5] } 9.Ne5 { [%cal Gg6g5,Yg6g5] } 9...g5 { [%cal Gh2h4,Yh2h4] } 10.h4 { [%cal Ga7a6,Ya7a6] } 10...a6 { [%cal Gb5c6,Yb5c6] } 11.Bxc6+ { [%cal Gb7c6,Yb7c6] } 11...bxc6 { [%cal Gc2c4,Ya1c1] } 12.Rc1 { [%cal Gf6g4,Yf6e4] } ( 12.c4 { 1.45/16 1.003s } ) 12...Ne4 { [%cal Ge2f4,Ye2f4] } ( 12...Ng4 13.Nd3 { -1.53/17 1.001s } ) 13.Nf4 { [%cal Gg5g4,Yg5g4] } 13...g4 { [%cal Gc2c4,Ye5g6] } 14.Neg6 { [%cal Gg4g3,Yc6c5] } ( 14.c4 Bxe5 15.dxe5 { 2.27/20 1.005s } ) 14...c5 { [%cal Gc2c4,Yg6h8] } ( 14...g3 15.fxg3 { -1.75/19 1.001s } ) 15.Nxh8 { [%cal Gg7h8,Yg7h8] } ( 15.c4 dxc4 { 1.56/16 1.003s } ) 15...Bxh8 { [%cal Gc2c4,Yf2f3] } 16.f3 { [%cal Ge4g3,Ye4g3] } ( 16.c4 dxc4 { 1.04/16 1.002s } ) 16...Ng3 { [%cal Gd4c5,Yh1g1] } 17.Rg1 { [%cal Gc5d4,Yc5d4] } ( 17.dxc5 Qc6 18.Rg1 { 1.47/18 1.004s } ) 17...cxd4 { [%cal Ge1f2,Ye1f2] } 18.Kf2 { [%cal Gd4e3,Yd4e3] } 18...dxe3+ { [%cal Gd2e3,Yd2e3] } 19.Bxe3 { [%cal Gg3e4,Yd5d4] } 19...d4 { [%cal Ge3d2,Ye3d2] } ( 19...Ne4+ 20.fxe4 { -2.19/20 1.003s } ) 20.Bd2 { [%cal Gg3e4,Yg3e4] } 20...Ne4+ { [%cal Gf3e4,Yf3e4] } 21.fxe4 { [%cal Gh8e5,Yf5e4] } 21...fxe4 { [%cal Gd1e2,Yg1f1] } ( 21...Be5 22.Kg3 fxe4 { -2.32/20 1.002s } ) 22.Rf1 { [%cal Gh8e5,Yh8e5] } ( 22.Qe2 e3+ { 1.53/18 1.001s } ) 22...Be5 { [%cal Gf2g3,Yf2g1] } 23.Kg1 { [%cal Ge4e3,Ye4e3] } ( 23.Kg3 Rb8 { 1.63/19 1.002s } ) 23...e3 { [%cal Gf4h5,Yd2b4] } 24.Bb4 { [%cal Gc7c5,Yd6b4] } ( 24.Nh5 exd2 { 1.64/19 1.004s } ) 24...Qxb4 { [%cal Gd1d3,Yd1d3] } ( 24...c5 25.Bxc5 { -2.32/18 1.001s } ) 25.Qd3 { [%cal Gb4d6,Yb4d6] } 25...Qd6 { [%cal Gd3e4,Yd3e4] } 26.Qe4 { [%cal Ga8b8,Ya8b8] } 26...Rb8 { [%cal Gf4g6,Yf4g6] } 27.Ng6 { [%cal Ge5f6,Ye5g7] } 27...Bg7 { [%cal Gg6e7,Yg6e7] } ( 27...Bf6 28.Rxf6 { -3.97/19 1.003s } ) 28.Nxe7 { [%cal Gd6e7,Yd6e6] } 28...Qe6 { [%cal Ge4h7,Ye4h7] } ( 28...Qxe7 29.Qg6+ { -3.19/22 1.002s } ) 29.Qh7 { [%cal Ge6e7,Ye6e7] } 29...Qxe7 { [%cal Gh7g6,Yh7g6] } 30.Qg6+ { [%cal Ge8d8,Ye8d8] } 30...Kd8 { [%cal Gf1f7,Yf1f7] } 31.Rf7 { [%cal Ge7e5,Ye7e5] } 31...Qe5 { [%cal Gg6h7,Yg6h7] } 32.Qh7 { [%cal Gc8d7,Yc8d7] } 32...Bd7 { [%cal Gf7g7,Yf7g7] } 33.Rxg7 { [%cal Gd7e8,Yd7e8] } 33...Be8 { [%cal Gg7g4,Yg7g4] } 34.Rxg4 { [%cal Gd8c8,Yd8c8] } 34...Kc8 { [%cal Gg4e4,Yg4e4] } 35.Re4 { [%cal Ge5b5,Ye5b5] } 35...Qb5 { [%cal Gh7h8,Ye4e7] } 36.Re7 { [%cal Gb5c6,Ye8d7] } ( 36.Qh8 Kb7 { 5.32/20 1.001s } ) 36...Bd7 { [%cal Gc1f1,Yc1f1] } ( 36...Qc6 37.Rd1 { -5.66/17 1.002s } ) 37.Rf1 { [%cal Ge3e2,Ye3e2] } 37...e2 { [%cal Gf1f8,Yf1f8] } 38.Rf8+ { [%cal Gc8b7,Yc8b7] } 38...Kb7 { [%cal Gh7e4,Yh7e4] } 39.Qe4+ { [%cal Gd7c6,Yd7c6] } 39...Bc6 { [%cal Gf8b8,Yf8b8] } 40.Rxb8+ { [%cal Gb7b8,Yb7b8] } 40...Kxb8 { [%cal Ge4d4,Ye4d4] } 41.Qxd4 { [%cal Gb8c8,Yb8b7] } 41...Kb7 { [%cal Ge7e5,Ye7e5] } ( 41...Kc8 { -6.54/19 1.001s } ) 42.Re5 { [%cal Ge2e1,Yb5a5] } 42...Qa5 { [%cal Ge5e2,Ye5e2] } ( 42...e1=Q+ { -6.84/19 1.001s } ) 43.Rxe2 { [%cal Ga5h5,Ya5a2] } 43...Qxa2 { [%cal Gd4b4,Yd4b4] } ( 43...Qh5 44.Re7 Qg6 { -7.21/21 1.001s } ) 44.Qb4+ 1-0