Devlog of Leorik

Discussion of chess software programming and technical issues.

Moderator: Ras

Mike Sherwin
Posts: 965
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Devlog of Leorik

Post by Mike Sherwin »

One advantage of playing only 100 games is I can set here and watch some of them. Leorik has a serious bug in the late endgame.
[pgn][Event "RomiRomi"]
[Site "DESKTOP-HFVHK2B"]
[Date "2023.04.07"]
[Round "8"]
[White "Leorik.Classic"]
[Black "Leorik.KiSS"]
[Result "0-1"]
[BlackElo "2000"]
[ECO "D07"]
[Opening "QGD"]
[Time "00:55:57"]
[Variation "Chigorin, 3.cxd5 Main Line, 7.Bxc3"]
[WhiteElo "2000"]
[TimeControl "5+0"]
[Termination "normal"]
[PlyCount "189"]
[WhiteType "human"]
[BlackType "human"]

1. d4 d5 2. c4 Nc6 3. cxd5 Qxd5 4. e3 e5 5. Nc3 Bb4 6. Bd2 Bxc3 7. Bxc3
exd4 8. Ne2 Bg4 9. f3 O-O-O 10. Nxd4 Be6 11. Qb3 {(Qd1-b3 Nc6xd4 Qb3xd5
Nd4-c2+ Ke1-d2 Rd8xd5+ Kd2xc2 Rd5-g5 Rh1-g1 Ng8-e7 Bf1-d3) +1.16/11} Nxd4
{(Nc6xd4 Qb3xd5 Nd4-c2+ Ke1-d2 Rd8xd5+ Kd2xc2 Ng8-f6 Bf1-d3 Rd5-c5 b2-b4
Rc5-g5 Rh1-g1 Nf6-d5 e3-e4) -1.10/14} 12. Qxd5 {(Qb3xd5 Nd4-c2+ Ke1-d2
Rd8xd5+ Kd2xc2 Ng8-f6 Bf1-c4 Rd5-c5 Bc4xe6+ f7xe6 Kc2-b3 Rh8-d8 Bc3-d4
Rc5-a5 Ra1-c1 e6-e5) +0.86/16} Nc2+ {(Nd4-c2+ Ke1-d2 Rd8xd5+ Kd2xc2 Ng8-e7
Bc3xg7 Rd5-c5+ Kc2-d2 Rh8-d8+ Kd2-e1 Ne7-d5 Bg7-d4 Rc5-c2 Ra1-d1 Nd5-b4
a2-a3) -1.19/16} 13. Kd2 {(Ke1-d2 Rd8xd5+ Kd2xc2 Ng8-f6 Bf1-c4 Rd5-g5
Bc4xe6+ f7xe6 Rh1-g1 Rh8-d8 b2-b3 Nf6-d5 Bc3-d4 Nd5-b4+ Kc2-c3 c7-c5)
+0.89/16} Rxd5+ {(Rd8xd5+ Kd2xc2 Ng8-e7 Bc3xg7 Rd5-c5+ Kc2-d2 Rh8-d8+
Kd2-e1 Ne7-d5 Bg7-d4 Rc5-c2 Bd4xa7 Rc2xb2 Ba7-d4 Rb2-c2 h2-h3) -1.28/16}
14. Kxc2 {(Kd2xc2 Ng8-e7 Bc3xg7 Rd5-c5+ Kc2-d2 Rh8-d8+ Kd2-e1 Ne7-d5 Bg7-d4
Rc5-c2 Bd4xa7 Rc2xb2 Ba7-d4 Rb2-c2 Bf1-e2 c7-c5) +0.92/16 1} Nf6 {(Ng8-f6
h2-h4 Rd5-d8 Bf1-d3 Nf6-d5 Bc3-d2 c7-c5 h4-h5 Nd5-b4+ Bd2xb4 c5xb4 h5-h6
g7-g6) -1.08/13} 15. e4 {(e3-e4 Rd5-g5 f3-f4 Rg5-g4 Bc3xf6 g7xf6 g2-g3
Rh8-d8 Bf1-e2 Rg4-g8 f4-f5 Be6-d7 Rh1-d1 Rg8-g5 Be2-c4) +1.41/15} Rg5
{(Rd5-g5 h2-h4 Rg5-g3 Ra1-d1 Rh8-e8 Bc3-e1 Rg3-g6 h4-h5 Rg6-g5 h5-h6 Be6xa2
Be1-c3 Re8-e6) -0.98/13} 16. h4 {(h2-h4 Rg5-g3 Bc3-d4 Rh8-d8 Bd4xa7 b7-b6
Bf1-a6+ Kc8-d7 Ra1-d1+ Kd7-e7 Rd1xd8 Ke7xd8 Rh1-d1+ Kd8-e7) +1.08/14 1} Rg3
{(Rg5-g3 Bc3-e1 Rg3-g6 h4-h5 Rg6-g5 h5-h6 g7xh6 Rh1xh6 Rg5-g6 Rh6xg6 f7xg6
Be1-c3 Rh8-f8 Bc3xf6) -1.85/14} 17. Be1 {(Bc3-e1 Rg3-g6 h4-h5 Rg6-g5 h5-h6
g7xh6 Rh1xh6 Nf6-g8 Be1-c3 Ng8xh6 Bc3xh8 Rg5-a5 b2-b3) +1.62/13} Rg6
{(Rg3-g6 h4-h5 Rg6-g5 h5-h6 g7xh6 Rh1xh6 Nf6-g8 Rh6-h4 Ng8-e7 Be1-c3 Ne7-g6
Rh4-h6 Rh8-d8 Bc3-d2 Rg5-c5+ Bd2-c3 Rd8-h8) -1.93/17} 18. h5 {(h4-h5 Rg6-g5
h5-h6 g7xh6 Rh1xh6 Rg5-g6 Rh6xg6 f7xg6 Be1-c3 Rh8-f8 Bc3-d4 Kc8-d7 Bf1-d3
a7-a6 b2-b3 Nf6-h5) +1.78/16} Rg5 {(Rg6-g5 h5-h6 g7xh6 Be1-c3 Rg5-g6 f3-f4
Rh8-g8 f4-f5 Rg6xg2+ Bf1xg2 Rg8xg2+ Kc2-c1 Nf6xe4 f5xe6 f7xe6 Bc3-d4 c7-c5)
-2.17/17} 19. h6 {(h5-h6 g7xh6 Be1-c3 Rg5-g6 f3-f4 Rh8-g8 f4-f5 Rg6xg2+
Bf1xg2 Rg8xg2+ Kc2-b1 Nf6xe4 f5xe6 f7xe6 Bc3-e5 Rg2-g5) +2.51/16} Rg6
{(Rg5-g6 h6xg7 Rh8-g8 Be1-c3 Rg8xg7 b2-b3 h7-h6 Ra1-d1 Be6-d7 Bc3-d4 a7-a6
g2-g4 Rg7-g8 Rh1-h4 Rg8-d8 Bd4xf6) -2.57/16} 20. hxg7 {(h6xg7 Rh8-g8 Be1-c3
Rg8xg7 g2-g4 Rg7-g8 Bf1-d3 Rg8-d8 b2-b3 Nf6-d7 Rh1xh7 Nd7-c5 Ra1-d1 Nc5xd3
Rd1xd3) +3.36/15} Rg8 {(Rh8-g8 Be1-c3 Rg8xg7 g2-g4 Rg7-g8 Bf1-d3 Nf6-d7
Rh1xh7 Nd7-c5 Bc3-d4 Nc5xd3 Kc2xd3 Rg6-g5 Bd4-f6 Rg5-c5) -3.12/15} 21. Bc3
{(Be1-c3 Rg8xg7 g2-g4 Rg7-g8 Bf1-d3 Rg8-d8 b2-b3 a7-a6 e4-e5 Nf6-d5 Bd3xg6
Nd5-e3+ Kc2-b2 h7xg6 Rh1-h7) +3.38/15} R8xg7 {(Rg8xg7 g2-g4 Rg7-g8 Bf1-d3
Nf6-d7 Rh1xh7 Nd7-c5 Bd3-e2 Rg8-d8 Bc3-b4 Nc5-a4 f3-f4 c7-c5 f4-f5 c5xb4)
-3.33/15} 22. g4 {(g2-g4 Rg7-g8 g4-g5 Nf6-d7 f3-f4 Nd7-f8 f4-f5 Rg6xg5
f5xe6 f7xe6 Ra1-e1 Rg8-g6 e4-e5 Rg5-f5 Bc3-d4 Rf5-f3) +3.66/16} Rg8
{(Rg7-g8 Bf1-d3 Rg8-d8 b2-b3 a7-a6 Ra1-b1 Nf6-d7 Rh1xh7 Nd7-c5 Rb1-d1
Nc5xd3 Rd1xd3 Rg6-g5 Rd3xd8+ Kc8xd8) -3.34/15} 23. g5 {(g4-g5 Nf6xe4 f3xe4
Rg6xg5 Rh1xh7 Rg5-g3 b2-b3 Rg3-e3 Ra1-e1 Re3xe1 Bc3xe1 Rg8-g1 Rh7-h8+
Kc8-d7 Bf1-b5+ Kd7-d6) +3.94/16} Nd7 {(Nf6-d7 f3-f4 Nd7-c5 f4-f5 Rg6xg5
f5xe6 f7xe6 Rh1xh7 Nc5xe4 Bf1-h3 Rg8-e8 Rh7-h8 Re8xh8 Bh3xe6+) -4.25/14}
24. f4 {(f3-f4 Nd7-c5 f4-f5 Rg6xg5 f5xe6 f7xe6 Rh1xh7 Nc5xe4 Bf1-h3 Kc8-b8
Bh3xe6 Rg5-g2+ Kc2-c1 Rg8-g3) +4.07/14} Nc5 {(Nd7-c5 f4-f5 Rg6xg5 f5xe6
f7xe6 Rh1xh7 Rg8-f8 Ra1-e1 Rf8-f2+ Bf1-e2 Nc5xe4 Bc3-d4 Rf2-f4 Bd4xa7)
-4.53/14} 25. f5 {(f4-f5 Rg6xg5 f5xe6 f7xe6 Rh1xh7 Nc5xe4 Bf1-c4 Rg5-g2+
Kc2-b3 Kc8-b8 Ra1-d1 Ne4xc3 b2xc3 Rg8-e8 Rd1-d7) +4.07/15} Rxg5 {(Rg6xg5
Bc3-d4 Nc5xe4 f5xe6 f7xe6 Ra1-e1 Ne4-g3 Rh1xh7 Ng3xf1 Re1xf1 e6-e5 Bd4xa7
Rg5-g2+ Ba7-f2 Rg8-g3) -3.99/15} 26. fxe6 {(f5xe6 f7xe6 Ra1-e1 Rg8-f8 b2-b4
Rf8-f2+ Bc3-d2 Nc5-d7 Rh1xh7 Rg5-g1 Rh7xd7 Rg1xf1 Re1xf1 Rf2xf1 Rd7-e7)
+4.73/15} fxe6 {(f7xe6 Ra1-e1 h7-h5 b2-b4 Nc5-d7 Bc3-d2 Rg5-g3 Rh1xh5
Rg8-e8 Bf1-d3 Re8-d8 Bd3-c4 e6-e5 Rh5-h6 Nd7-b6) -4.93/15} 27. Re1 {(Ra1-e1
h7-h5 b2-b4 Nc5-d7 Bc3-d2 Rg5-g3 Rh1xh5 Rg8-e8 Bf1-d3 Re8-f8 Rh5-g5 Rg3xg5
Bd2xg5 Nd7-e5 a2-a4) +5.21/15} Rf8 {(Rg8-f8 Rh1xh7 Rf8-f2+ Kc2-c1 Rf2-f3
Bf1-c4 b7-b6 Bc4-e2 Nc5-d3+ Be2xd3 Rf3xd3 Rh7-e7 Rg5-g6 Kc1-c2) -5.13/14}
28. Rxh7 {(Rh1xh7 Rf8-f2+ Kc2-c1 Rf2-f3 Bf1-e2 Nc5-d3+ Be2xd3 Rf3xd3 Rh7-e7
Rg5-g6 Bc3-e5 c7-c6 Kc1-c2 Rd3-f3) +5.03/14} Rf2+ {(Rf8-f2+ Kc2-c1 Rf2-f3
Bf1-e2 Rf3-g3 Bc3-f6 Rg3-g1 Rh7-h8+ Kc8-d7 Be2-b5+ c7-c6 Rh8-h7+ Kd7-c8
Rh7-h8+ Kc8-c7) -5.16/15} 29. Kc1 {(Kc2-c1 Nc5xe4 Bc3-d4 Rf2-f3 Bf1-e2
Rf3-f8 Be2-c4 Ne4-c5 Re1-e5 Rg5xe5 Bd4xe5 c7-c6 b2-b4) +5.38/15} Rf3
{(Rf2-f3 Bf1-e2 Nc5-d3+ Be2xd3 Rf3xd3 Rh7-e7 Rg5-g6 Bc3-e5 Rd3-d7 Re7-e8+
Rd7-d8 Re8xd8+ Kc8xd8 Kc1-c2) -5.61/14} 30. Be2 {(Bf1-e2 Rf3-f8 Bc3-d4
Nc5xe4 Be2-c4 Ne4-c5 Re1-e5 Rg5xe5 Bd4xe5 c7-c6 b2-b4 Nc5-d7 Bc4xe6 Rf8-f1+
Kc1-b2) +5.54/15} Rf8 {(Rf3-f8 Bc3-d4 Nc5xe4 Be2-c4 Ne4-d6 Bc4xe6+ Kc8-b8
Bd4-e5 Nd6-b5 Be6-c4 Nb5-d6 Be5xd6 c7xd6 Re1-e7) -6.11/14} 31. Bd4 {(Bc3-d4
b7-b6 b2-b4 Nc5-b7 Be2-a6 e6-e5 Bd4-a1 Rf8-e8 Re1-d1 Kc8-b8 Ba6-b5 Re8-d8
Rd1xd8+ Nb7xd8 Ba1-c3) +6.11/15} Nxe4 {(Nc5xe4 Be2-c4 Ne4-d6 Bc4xe6+ Kc8-b8
Bd4-f6 Rg5-c5+ Kc1-d2 a7-a5 Rh7-h6 b7-b6 Rh6-g6 Kb8-b7 Bf6-d4 Rc5-h5
Bd4-f6) -6.09/16} 32. Bc4 {(Be2-c4 Ne4-d6 Bc4xe6+ Kc8-b8 Bd4-f6 Rg5-c5+
Kc1-d2 a7-a5 Rh7-h6 b7-b6 Rh6-g6 Kb8-b7 Bf6-d4 Rc5-h5 Bd4-f6) +6.09/15} Nd6
{(Ne4-d6 Bc4xe6+ Kc8-b8 Bd4-f6 Rg5-c5+ Kc1-d2 b7-b5 Rh7-h6 b5-b4 Rh6-g6
Kb8-b7 Be6-b3 Rc5-h5 Re1-e7 Rh5-h2+ Kd2-c1) -5.94/16} 33. Bxe6+ {(Bc4xe6+
Kc8-b8 Bd4-f6 Rg5-c5+ Kc1-d2 a7-a5 Rh7-h6 b7-b6 Rh6-g6 Kb8-a7 b2-b3 Ka7-b7
Re1-e3 Kb7-a6 Re3-e1 Ka6-b5) +5.87/16} Kb8 {(Kc8-b8 Bd4-f6 Rg5-c5+ Kc1-b1
b7-b6 Rh7-h6 Kb8-b7 Rh6-g6 a7-a5 b2-b3 Rc5-h5 Be6-g8 Kb7-c6 Re1-e7 Rh5-h2
Bg8-c4) -5.91/16} 34. Bf6 {(Bd4-f6 Rg5-c5+ Kc1-b1 a7-a5 Rh7-h6 Rf8-e8
Rh6-g6 a5-a4 a2-a3 b7-b6 Kb1-a2 Kb8-b7 Bf6-e5 Kb7-c6 Be5-f6) +5.95/15} Rg6
{(Rg5-g6 Bf6-e7 Rf8-e8 Kc1-c2 Nd6-c8 Be6-d7 Re8xe7 Rh7xe7 Nc8xe7 Re1xe7
Rg6-g8 Kc2-c3 Rg8-g3+ Kc3-d4 Rg3-g2) -5.48/15} 35. Be7 {(Bf6-e7 Rf8-e8
Be6-d5 Nd6-c8 Kc1-c2 Rg6-g4 Re1-e3 Re8xe7 Rh7xe7 Nc8xe7 Re3xe7 Kb8-c8 b2-b3
Rg4-g3) +5.55/14} Re8 {(Rf8-e8 Be7xd6 c7xd6 Rh7xb7+ Kb8xb7 Be6-d5+ Kb7-b6
Re1xe8 Kb6-c5 Bd5-f7 Rg6-g1+ Kc1-c2 Rg1-g2+ Kc2-c3 Rg2-g3+ Kc3-c2 d6-d5)
-5.80/17} 36. Bd5 {(Be6-d5 Nd6-c8 Kc1-c2 Re8xe7 Rh7xe7 Nc8xe7 Re1xe7 Kb8-c8
Bd5-e6+ Kc8-d8 Re7-d7+ Kd8-e8 Be6-f5 Rg6-g2+) +5.60/14} Nc8 {(Nd6-c8 Kc1-c2
Re8xe7 Rh7xe7 Nc8xe7 Re1xe7 c7-c6 Bd5-c4 Rg6-g3 Bc4-d3 Rg3-g2+ Kc2-c3
Kb8-c8 Bd3-f5+) -5.83/14} 37. Kc2 {(Kc1-c2 Re8xe7 Rh7xe7 Nc8xe7 Re1xe7
Kb8-c8 Kc2-c3 Rg6-d6 Kc3-c4 c7-c6 Bd5-f3 Rd6-d2 Kc4-c3 Rd2-f2 Bf3-g4+)
+5.67/15} Rxe7 {(Re8xe7 Rh7xe7 Nc8xe7 Re1xe7 Kb8-c8 Kc2-c3 Rg6-d6 Kc3-c4
c7-c6 Bd5-e4 Rd6-d2 Kc4-c3 Rd2-f2 Be4-d3 a7-a6) -5.70/15} 38. Rhxe7
{(Rh7xe7 Nc8xe7 Re1xe7 Kb8-c8 Kc2-c3 Rg6-d6 Kc3-c4 c7-c6 Bd5-e4 Rd6-d2
Kc4-c3 Rd2-f2 Be4-d3 a7-a6 a2-a3 a6-a5 b2-b4) +5.76/17} Nxe7 {(Nc8xe7
Re1xe7 c7-c6 Bd5-e4 Rg6-g1 a2-a3 a7-a5 Kc2-d3 Rg1-d1+ Kd3-c4 Rd1-d2 Kc4-c3
Rd2-f2 Be4-d3 Kb8-c8 b2-b4) -5.76/16} 39. Rxe7 {(Re1xe7 a7-a5 Kc2-c3 Rg6-g1
a2-a3 Rg1-d1 Kc3-c4 Kb8-c8 b2-b4 a5xb4 a3xb4 Rd1-c1+ Kc4-d4 Kc8-d8 Re7-f7
b7-b6) +5.53/16} c6 {(c7-c6 Bd5-e4 Rg6-g1 a2-a3 a7-a5 Kc2-c3 Kb8-a7 Kc3-d4
Ka7-b6 Kd4-e5 Rg1-g5+ Be4-f5 Rg5-g2 b2-b4 a5-a4) -5.68/15} 40. Be4 {(Bd5-e4
Rg6-g3 Be4-d3 Rg3-g2+ Kc2-c3 a7-a5 a2-a4 Kb8-a7 Bd3-c4 Ka7-b6 b2-b3 Rg2-f2
Re7-d7 Rf2-a2) +5.66/14} Rh6 {(Rg6-h6 Be4-d3 Rh6-h2+ Kc2-c3 a7-a5 Bd3-e4
Rh2-h3+ Be4-d3 Kb8-a7 a2-a3 Rh3-h2 a3-a4 Ka7-b6 b2-b3 Rh2-a2) -5.67/15} 41.
a4 {(a2-a4 a7-a5 Re7-e5 Rh6-h4 Kc2-d3 Rh4-h3+ Kd3-c4 Rh3-h2 Kc4-c3 Rh2-h4
Be4-c2 b7-b6 Re5-e7 Kb8-c8 Bc2-f5+) +6.02/15} a5 {(a7-a5 Re7-e5 Rh6-h2+
Kc2-c3 Rh2-h3+ Be4-d3 b7-b6 Re5-e7 Kb8-c8 b2-b3 Rh3-h1 Bd3-f5+ Kc8-d8
Re7-d7+ Kd8-e8 Kc3-c4) -6.03/16} 42. Re5 {(Re7-e5 Rh6-h4 Kc2-d3 Rh4-h3+
Kd3-c4 Rh3-h4 Kc4-c5 Rh4-h3 Be4-c2 Kb8-a7 Re5-e2 Rh3-h4 Re2-d2 Rh4-h5+
Kc5-d6 Rh5-h1 Kd6-c7) +5.80/17} Rh4 {(Rh6-h4 Kc2-d3 Rh4-h3+ Kd3-c4 Rh3-h4
Re5-e7 Kb8-a7 Kc4-d4 Ka7-b6 b2-b3 Rh4-h2 Be4-d3 Rh2-d2 Kd4-c3 Rd2-f2 Kc3-c4
Rf2-d2) -5.67/17} 43. Kd3 {(Kc2-d3 Rh4-h3+ Kd3-c4 Rh3-h4 Kc4-d4 Rh4-h3
Re5xa5 Rh3-b3 Ra5-g5 Rb3-b4+ Kd4-e5 Rb4xb2 Ke5-d6 Rb2-d2+ Kd6-c5 Kb8-c7
Rg5-g7+ Kc7-c8) +5.61/18} Rh3+ {(Rh4-h3+ Kd3-c4 Rh3-h4 Kc4-d4 Rh4-h3 Be4-d3
Rh3-h4+ Re5-e4 Rh4-h2 Kd4-c3 Kb8-a7 Re4-e7 Ka7-b6 b2-b3 Rh2-a2 Kc3-c4
Ra2-d2 Kc4-c3 Rd2-f2) -5.67/19} 44. Kc4 {(Kd3-c4 Rh3-h4 Re5-e7 Kb8-a7 b2-b3
Ka7-b6 Kc4-d4 Rh4-h2 Be4-f5 Rh2-d2+ Kd4-c3 Rd2-d8 Bf5-d3 Rd8-f8 Bd3-c4
Rf8-f2 Re7-d7 Rf2-a2) +5.66/18} Rh4 {(Rh3-h4 Kc4-d4 Rh4-h3 Be4-d3 Rh3-h4+
Re5-e4 Rh4-h2 Re4-e8+ Kb8-c7 Re8-e7+ Kc7-b6 b2-b3 Rh2-a2 Kd4-c4 Ra2-d2
Kc4-c3 Rd2-f2 Bd3-c4 Rf2-f3+ Kc3-d4) -5.67/20} 45. b3 {(b2-b3 Kb8-c7 Kc4-d4
Kc7-b6 Re5-e7 Rh4-h3 Be4-d3 Rh3-h4+ Kd4-c3 Rh4-h2 Kc3-c4 Rh2-h4+ Bd3-e4
Rh4-h2 Be4-g6 Rh2-d2 Bg6-d3 Rd2-a2) +5.64/18} Kc7 {(Kb8-c7 Kc4-d4 Kc7-b6
Re5-e7 Rh4-h3 Be4-d3 Rh3-h4+ Kd4-c3 Rh4-f4 Bd3-e2 Rf4-h4 Be2-c4 Rh4-h1
Bc4-d3 Rh1-c1+ Kc3-d2 Rc1-a1 Kd2-c3) -5.54/18} 46. Kd4 {(Kc4-d4 Kc7-b6
Re5-e7 Rh4-g4 Kd4-c4 Kb6-a6 Kc4-c3 Ka6-b6 Be4-d3 Rg4-g3 Kc3-c4 Rg3-g4+
Kc4-c3 Rg4-g3 Kc3-c4 Rg3-g4+ Kc4-c3 Rg4-g3 Kc3-c4) +5.54/19} Kb6 {(Kc7-b6
Re5-e7 Rh4-g4 Re7-d7 Rg4-g1 Kd4-e5 Rg1-g3 Be4-c2 Rg3-c3 Bc2-d1 c6-c5 Rd7-e7
Kb6-c6 Ke5-f6 b7-b6 Re7-e6+ Kc6-c7 Kf6-f7 Rc3-d3) -5.41/19} 47. Re7
{(Re5-e7 Rh4-g4 Kd4-c4 Kb6-a6 Kc4-c3 Ka6-b6 Be4-d3 Rg4-g3 Kc3-c4 Rg3-g4+
Kc4-c3 Rg4-g3 Kc3-c4 Rg3-g4+ Kc4-c3 Rg4-g3 Kc3-c4 Rg3-g4+ Kc4-c3) +5.54/19}
Rg4 {(Rh4-g4 Re7-f7 Rg4-g3 Be4-d3 Rg3-g4+ Kd4-c3 Rg4-g1 Rf7-d7 Rg1-c1+
Kc3-d2 Rc1-a1 Rd7-e7 Ra1-g1 Kd2-c2) -5.54/18} 48. Kc4 {(Kd4-c4 Rg4-f4
Kc4-c3 Kb6-c5 Kc3-d3 Kc5-b6 Kd3-c4 Rf4-h4 Re7-e6 Rh4-f4 Kc4-d4 Rf4-f1
Re6-e7 Rf1-e1 Re7-f7 Re1-c1 Be4-d3 Rc1-e1 Kd4-c4) +5.55/19} Rf4 {(Rg4-f4
Re7-e8 Kb6-c7 Kc4-d4 Kc7-b6 Re8-b8 Rf4-f2 Rb8-a8 Rf2-b2 Kd4-c4 Rb2-f2
Be4-d3 Rf2-f4+ Kc4-c3 c6-c5 Ra8-c8 Rf4-d4 Bd3-c4 Rd4-d1) -5.47/19} 49. Kc3
{(Kc4-c3 Kb6-c5 Kc3-d3 Kc5-b6 Kd3-c4 Rf4-h4 Re7-e6 Rh4-f4 Kc4-d4 Rf4-h4
Re6-e8 Rh4-h2 Be4-d3 Rh2-g2 Re8-e7 Rg2-g4+ Kd4-e5 Rg4-g3 Ke5-d4 Rg3-g4+)
+5.56/20} Kc5 {(Kb6-c5 Kc3-d3 Kc5-b6 Kd3-c4 Rf4-f2 Be4-d3 Rf2-f4+ Kc4-c3
Rf4-g4 Re7-f7 Rg4-g1 Rf7-d7 Rg1-c1+ Kc3-d2 Rc1-g1 Rd7-e7 Rg1-g3 Kd2-c3)
-5.54/18} 50. Kd3 {(Kc3-d3 Kc5-b6 Kd3-c4 Rf4-h4 Re7-e6 Rh4-f4 Kc4-d4 Rf4-h4
Re6-e8 Rh4-h2 Be4-d3 Rh2-g2 Re8-e7 Rg2-g4+ Kd4-e5 Rg4-g3 Ke5-d4 Rg3-g4+
Re7-e4 Rg4-g3) +5.56/20} Kb6 {(Kc5-b6 Be4-g6 Rf4-f3+ Kd3-c2 Rf3-g3 Bg6-d3
Rg3-g1 Kc2-c3 Rg1-g4 Re7-f7 Rg4-g1 Rf7-d7 Rg1-e1 Kc3-d4 c6-c5+ Kd4-d5
Re1-d1 Kd5-e6) -5.54/18} 51. Kc4 {(Kd3-c4 Rf4-h4 Re7-e6 Rh4-f4 Kc4-d4
Rf4-h4 Re6-e8 Rh4-h2 Be4-d3 Rh2-b2 Kd4-c4 Rb2-g2 Kc4-c3 Rg2-g4 Re8-e7
Rg4-g2 Bd3-c4 Rg2-g1 Bc4-d3) +5.54/19 1} Rh4 {(Rf4-h4 Re7-e8 Rh4-f4 Kc4-d4
Rf4-f7 Kd4-c3 Rf7-d7 Re8-e6 Kb6-c7 Kc3-c4 Kc7-b6 Re6-e5 Rd7-d1 Re5-e7
Rd1-e1 Kc4-d4 Re1-e2 Kd4-d3 Re2-e1 Kd3-d4) -5.47/20} 52. Re6 {(Re7-e6
Rh4-f4 Kc4-d4 Rf4-h4 Re6-e8 Rh4-h2 Be4-d3 Rh2-b2 Kd4-c4 Rb2-g2 Kc4-c3
Rg2-g4 Re8-e7 Rg4-g1 Bd3-c4 Rg1-c1+ Kc3-d4 Rc1-d1+ Kd4-c3) +5.54/19} Rf4
{(Rh4-f4 Re6-e8 Kb6-c7 Kc4-d4 Kc7-b6 Re8-b8 Rf4-f2 Rb8-a8 Rf2-b2 Kd4-c4
Rb2-f2 Be4-d3 Rf2-f4+ Kc4-c3 Rf4-h4 Ra8-e8 Rh4-b4 Re8-e7 Kb6-c5 Re7-e5+)
-5.49/20} 53. Re7 {(Re6-e7) +5.67/1} Rh4 {(Rf4-h4 Re7-e8 Rh4-f4 Kc4-d4
Rf4-f7 Kd4-c3 Rf7-d7 Re8-e6 Kb6-c7 Kc3-c4 Kc7-b6 Kc4-c3 Kb6-c7 Kc3-c4
Kc7-b6 Kc4-c3 Kb6-c7 Kc3-c4 Kc7-b6 Kc4-c3 Kb6-c7 Kc3-c4 Kc7-b6 Kc4-c3
Kb6-c7 Kc3-c4 Kc7-b6 Kc4-c3 Kb6-c7 Kc3-c4 Kc7-b6 Kc4-c3 Kb6-c7 Kc3-c4
Kc7-b6) 0.00/35} 54. Kd4 {(Kc4-d4) +5.91/1} Rg4 {(Rh4-g4 Re7-f7 Rg4-g3
Be4-d3 Rg3-g4+ Kd4-c3 Rg4-g1 Rf7-d7 Rg1-d1 Kc3-c4 Rd1-c1+ Kc4-d4 Rc1-e1
Bd3-e4 Re1-c1 Be4-d3 Rc1-e1 Bd3-e4 Re1-c1 Be4-d3 Rc1-e1 Bd3-e4 Re1-c1
Be4-d3 Rc1-e1 Bd3-e4 Re1-c1 Be4-d3 Rc1-e1 Bd3-e4 Re1-c1) 0.00/31} 55. Ke5
{(Kd4-e5) +6.04/1} Rg3 {(Rg4-g3 Be4-c2 Rg3-c3 Bc2-f5 Rc3xb3 Ke5-d6 Rb3-b4
Re7-e4 Rb4-b2 Re4-c4 Rb2-d2+ Kd6-e6 Kb6-c7 Rc4-c5 b7-b6 Rc5-c4 c6-c5)
-3.04/17} 56. Bc2 {(Be4-c2 Rg3-c3 Bc2-g6 Rc3xb3 Ke5-d6 Rb3-a3 Re7-e4
Ra3-d3+ Kd6-e6 Rd3-d2 Ke6-f6 Kb6-c5 Re4-e5+ Kc5-b4 Re5-e7 b7-b6) +3.05/16}
Rc3 {(Rg3-c3 Bc2-f5 Rc3xb3 Bf5-c8 Rb3-e3+ Ke5-f6 Re3-a3 Re7xb7+ Kb6-c5
Rb7-e7 Ra3xa4 Re7-e5+ Kc5-b6 Bc8-f5 Ra4-a1 Re5-e7 a5-a4 Bf5-g6) -3.36/18}
57. Bf5 {(Bc2-f5 Rc3xb3 Bf5-c8 Rb3-e3+ Ke5-f6 Re3-a3 Re7xb7+ Kb6-c5 Bc8-f5
Ra3xa4 Rb7-e7 Ra4-b4 Re7-e5+ Kc5-b6 Bf5-g6 a5-a4 Re5-e7) +3.58/17} Rxb3
{(Rc3xb3 Ke5-d6 Rb3-b4 Re7-e4 Rb4-b2 Re4-d4 Rb2-b4 Rd4-g4 Rb4-b2 Rg4-c4
Rb2-d2+ Kd6-e7 Kb6-c7 Ke7-e6 Rd2-d6+ Ke6-f7 Rd6-d2 Kf7-e6) -3.19/18} 58.
Kd6 {(Ke5-d6 Rb3-b4 Re7-e4 Rb4-b2 Re4-d4 Rb2-b4 Rd4-g4 Rb4-b2 Bf5-d3 Rb2-b3
Rg4-d4 c6-c5 Rd4-d5 Rb3-b4 Bd3-c2 c5-c4 Kd6-e6) +3.39/17} Ra3 {(Rb3-a3
Bf5-c8 Ra3-d3+ Kd6-e5 Rd3-d8 Bc8-e6 Rd8-d3 Re7-f7 Rd3-a3 Rf7-f4 Kb6-c7
Rf4-c4 Ra3-d3 Ke5-f6 Rd3-d2 Rc4-c5 b7-b6 Rc5-f5) -3.25/18} 59. Bc8 {(Bf5-c8
Ra3-d3+ Kd6-e6 Rd3-e3+ Ke6-f7 Re3xe7+ Kf7xe7) +3.48/7} Rd3+ {(Ra3-d3+
Kd6-e5 Rd3-d8 Bc8-e6 Rd8-d3 Re7-g7 Rd3-a3 Rg7-g4 Kb6-c7 Rg4-c4 Ra3-e3+
Ke5-f6 Kc7-d6 Rc4-d4+ Kd6-c5 Rd4-f4 Kc5-d6 Be6-f7 c6-c5) -2.94/19} 60. Ke5
{(Kd6-e5) +3.11/1} Rd8 {(Rd3-d8 Bc8-e6 Rd8-d3 Re7-g7 Rd3-a3 Rg7-g4 Kb6-c7
Rg4-c4 Ra3-e3+ Ke5-f6 Kc7-d6 Rc4-d4+ Kd6-c5 Rd4-f4 Kc5-d6 Be6-f7 c6-c5)
-2.94/17} 61. Bf5 {(Bc8-f5 Rd8-d5+ Ke5-f6 Rd5-d4 Bf5-c2 Rd4-d2 Bc2-b3
Rd2-b2 Bb3-e6 Rb2-b4 Be6-c8 Rb4xa4 Re7xb7+ Kb6-c5 Bc8-f5 Ra4-b4) +2.94/16}
Rd5+ {(Rd8-d5+ Ke5-f6 Rd5-d4 Bf5-c2 Rd4-d2 Bc2-b3 Rd2-b2 Bb3-d1 Rb2-d2
Bd1-f3 Rd2-f2 Re7-e3 Rf2-a2 Re3-e4 Ra2-f2 Re4-f4 Rf2-d2) -2.63/17} 62. Kf6
{(Ke5-f6 Rd5-d4 Bf5-c2 Rd4-d2 Bc2-b1 Rd2-d4 Bb1-f5 Rd4xa4 Bf5-c8 Ra4-f4+
Kf6-e5 Rf4-b4 Re7xb7+ Kb6-c5 Rb7-a7 a5-a4 Bc8-e6 Rb4-d4) +2.38/18} Rd4
{(Rd5-d4 Bf5-c8 Rd4xa4 Re7xb7+ Kb6-c5 Rb7-b1 Ra4-f4+ Kf6-e5 Rf4-f2 Rb1-c1+
Kc5-b6 Bc8-d7 Rf2-e2+ Ke5-f6 c6-c5 Rc1-c4 Re2-d2) -2.14/17} 63. Bc8
{(Bf5-c8 Rd4xa4 Re7xb7+ Kb6-c5 Bc8-f5 Ra4-b4 Rb7-a7 a5-a4 Bf5-c2 Kc5-b5
Bc2-d3+ Kb5-c5 Bd3-g6 Rb4-f4+ Kf6-e7 Kc5-d5 Ke7-e8) +2.47/17} Rxa4 {(Rd4xa4
Re7xb7+ Kb6-c5 Bc8-d7 Ra4-a1 Kf6-e7 a5-a4 Rb7-c7 Ra1-e1+ Ke7-d8 a4-a3
Rc7xc6+ Kc5-b4 Rc6-b6+ Kb4-c3 Rb6-a6 Kc3-b2) -1.99/17} 64. Rxb7+ {(Re7xb7+
Kb6-c5 Bc8-f5 Ra4-b4 Rb7-a7 a5-a4 Bf5-c2 Kc5-b5 Bc2-d3+ Kb5-c5 Bd3-g6
Rb4-f4+ Kf6-g7 Kc5-b4 Ra7-b7+) +2.47/15} Kc5 {(Kb6-c5 Bc8-d7 Ra4-a1 Kf6-e7
a5-a4 Rb7-c7 Ra1-e1+ Ke7-d8 a4-a3 Rc7xc6+ Kc5-b4 Rc6-b6+ Kb4-c3 Rb6-a6
Kc3-b2 Kd8-c7) -2.14/16} 65. Re7 {(Rb7-e7) +3.93/1} Rc4 {(Ra4-c4) -3.41/1}
66. Ra7 {(Re7-a7 a5-a4 Bc8-e6 Rc4-f4+ Kf6-e5 Rf4-h4 Ra7-a6 Kc5-b5 Ra6-a8
Rh4-h2 Ke5-d6 Rh2-d2+ Kd6-c7 Kb5-b4 Ra8-b8+ Kb4-c5) +2.30/16} Kb4 {(Kc5-b4
Bc8-e6 Rc4-c1 Ra7-b7+ Kb4-c5 Rb7-c7 a5-a4 Rc7-a7 Rc1-f1+ Kf6-e7 Kc5-b4
Ra7-b7+ Kb4-c3 Ke7-d6 Rf1-e1 Rb7-d7) -2.16/16} 67. Rb7+ {(Ra7-b7+ Kb4-c5
Bc8-e6 Rc4-d4 Rb7-a7 a5-a4 Kf6-e5 Rd4-h4 Ra7-a6 Kc5-b5 Ra6-a8 Rh4-h2 Ke5-d6
Rh2-d2+ Kd6-c7 Kb5-b4 Ra8-b8+) +2.30/17} Kc5 {(Kb4-c5 Bc8-e6 Rc4-c1 Rb7-a7
Kc5-b4 Ra7-b7+ Kb4-c5 Rb7-a7 Kc5-b4 Ra7-b7+ Kb4-c5 Rb7-a7 Kc5-b4 Ra7-b7+
Kb4-c5 Rb7-a7 Kc5-b4) -2.16/17} 68. Be6 {(Bc8-e6 Rc4-c1 Rb7-a7 Rc1-a1
Kf6-e7 a5-a4 Ke7-d7 Kc5-b6 Ra7-a8 a4-a3 Kd7-d6 Ra1-d1+ Kd6-e7 Rd1-d3
Ra8-b8+ Kb6-c5) +1.46/16} Rc1 {(Rc4-c1 Rb7-a7 Kc5-b4 Kf6-e7 a5-a4 Ke7-d6
a4-a3 Ra7-b7+ Kb4-a5 Be6-d7 c6-c5 Rb7-b3 Rc1-d1+ Kd6-c7 a3-a2 Rb3-a3+
Ka5-b4) -1.35/17} 69. Ra7 {(Rb7-a7 Rc1-a1 Kf6-e7 a5-a4 Ke7-d7 Kc5-b6 Ra7-a8
a4-a3 Kd7-d6 Ra1-d1+ Kd6-e7 Rd1-d3 Ra8-b8+ Kb6-c5) +1.46/14} Kb4 {(Kc5-b4
Kf6-e7 a5-a4 Ke7-d6 a4-a3 Ra7-b7+ Kb4-a5 Be6-d7 c6-c5 Rb7-b3 Rc1-d1+ Kd6-c7
a3-a2 Rb3-a3+ Ka5-b4) -1.35/15} 70. Rd7 {(Ra7-d7) +3.22/1} a4 {(a5-a4)
-2.40/1} 71. Rb7+ {(Rd7-b7+ Kb4-c5 Rb7-a7 Kc5-b4 Kf6-e7 a4-a3 Ra7-b7+
Kb4-c5 Be6-f7 Rc1-e1+ Ke7-d7 Re1-e2 Rb7-a7 Re2-d2+ Kd7-c7 Rd2-f2) +1.00/16}
Kc5 {(Kb4-c5 Rb7-a7 Kc5-b4 Ra7-c7 c6-c5 Rc7-b7+ Kb4-a5 Rb7-a7+ Ka5-b4
Ra7-d7 a4-a3 Rd7-b7+ Kb4-a5 Be6-f5 c5-c4 Rb7-d7) -1.11/16} 72. Ke7 {(Kf6-e7
a4-a3 Rb7-a7 Kc5-b4 Ke7-d6 c6-c5 Ra7-b7+ Kb4-a5 Be6-a2 Rc1-c3 Ba2-d5 Ka5-a6
Rb7-d7 Ka6-b5 Rd7-b7+ Kb5-a4) +0.99/16} a3 {(a4-a3 Rb7-a7 Rc1-c3 Ra7-a4
Kc5-b5 Ra4-a8 c6-c5 Ra8-b8+ Kb5-a4 Be6-d7+ Ka4-a5 Ke7-d6 c5-c4 Rb8-a8+
Ka5-b4 Ra8-b8+ Kb4-a5) -0.81/17} 73. Ra7 {(Rb7-a7 Rc1-c3 Ra7-d7 Kc5-b4
Rd7-d4+ Kb4-c5 Rd4-d1 Rc3-e3 Ke7-d7 Re3-c3 Be6-f7 Rc3-f3 Kd7-e7 Rf3-e3+
Ke7-f6 Re3-f3+ Kf6-e7) +1.02/17} Rc3 {(Rc1-c3 Ra7-a4 Kc5-b5 Ra4-a8 c6-c5
Be6-d5 c5-c4 Ke7-d6 Kb5-b4 Ra8-b8+ Kb4-a4 Bd5-c6+ Ka4-a5 Rb8-a8+ Ka5-b4
Ra8-b8+ Kb4-a5) -0.77/17} 74. Rd7 {(Ra7-d7 Kc5-b4 Rd7-d4+ Kb4-c5 Rd4-d1
Rc3-e3 Rd1-d7 Kc5-b4 Rd7-b7+ Kb4-c5 Ke7-f7 Re3-f3+ Kf7-e8 Rf3-e3 Ke8-f7
Re3-f3+ Kf7-e8) +0.89/17} Kb4 {(Kc5-b4) -1.16/1} 75. Bf7 {(Be6-f7) +1.19/1}
c5 {(c6-c5) -0.77/1} 76. Rb7+ {(Rd7-b7+ Kb4-a4 Ke7-d6 Ka4-a5 Kd6-c6 Ka5-a6
Bf7-d5 Ka6-a5 Bd5-a2 Rc3-c2 Ba2-b3 Rc2-c3 Rb7-b5+ Ka5-a6 Rb5-b8 Ka6-a5
Bb3-d5) +1.56/17} Ka5 {(Kb4-a5 Ke7-d6 Rc3-c2 Rb7-b8 Rc2-c3 Rb8-a8+ Ka5-b5
Bf7-e6 Kb5-b4 Be6-d5 Kb4-b5 Kd6-c7 Kb5-b4 Ra8-b8+ Kb4-a5 Kc7-c6 Ka5-a4)
-1.22/17} 77. Kd6 {(Ke7-d6 Rc3-c2 Kd6-c6 Rc2-c3 Rb7-b5+ Ka5-a4 Rb5-b7
Ka4-a5 Rb7-b5+ Ka5-a4 Rb5-b7 Ka4-a5 Rb7-b5+ Ka5-a4 Rb5-b7 Ka4-a5 Rb7-b5+
Ka5-a4) +2.09/18} Rc2 {(Rc3-c2 Rb7-b8 Rc2-b2 Bf7-b3 Rb2xb3 Rb8xb3 Ka5-a4
Rb3-b7 a3-a2 Kd6xc5 Ka4-a3 Kc5-c6 a2-a1Q Rb7-a7+ Ka3-b2 Ra7xa1 Kb2xa1)
-1.67/17} 78. Kc6 {(Kd6-c6 Rc2-b2 Bf7-b3 a3-a2 Bb3xa2 Rb2xb7 Kc6xb7 Ka5-b4
Kb7-c6 c5-c4 Ba2-b1 c4-c3 Bb1-c2 Kb4-c4 Kc6-d6 Kc4-d4 Kd6-e6 Kd4-e3)
+2.50/18} Rb2 {(Rc2-b2 Bf7-b3 Rb2xb3 Rb7xb3 Ka5-a4 Rb3-b1 a3-a2 Rb1-a1
Ka4-a3 Kc6xc5 Ka3-b2 Ra1-d1 a2-a1Q Rd1xa1 Kb2xa1 Kc5-d6 Ka1-b2 Kd6-e6)
-0.72/18} 79. Bb3 {(Bf7-b3 Rb2xb3 Rb7xb3 Ka5-a4 Rb3-b8 a3-a2 Rb8-a8+ Ka4-b3
Kc6xc5 Kb3-b2 Kc5-d6 a2-a1Q Ra8xa1 Kb2xa1 Kd6-e7 Ka1-b2 Ke7-e6) +0.72/17}
Rxb3 {(Rb2xb3 Rb7xb3 Ka5-a4 Rb3-b8 a3-a2 Rb8-a8+ Ka4-b3 Kc6xc5 Kb3-b2
Ra8-a7 a2-a1Q Ra7xa1 Kb2xa1 Kc5-d6 Ka1-b2 Kd6-d5 Kb2-c2 Kd5-e6 Kc2-d2)
-0.26/19} 80. Rxb3 {(Rb7xb3 Ka5-a4 Rb3-b8 a3-a2 Rb8-a8+ Ka4-b3 Kc6xc5
Kb3-b2 Kc5-d6 a2-a1Q Ra8xa1 Kb2xa1 Kd6-e7 Ka1-b2 Ke7-e6) +0.72/15} a2
{(a3-a2) -1.75/1} 81. Ra3+ {(Rb3-a3+ Ka5-b4 Ra3xa2 c5-c4 Ra2-b2+ Kb4-a3
Rb2-h2 c4-c3 Kc6-c7 Ka3-b3 Rh2-h3 Kb3-b2 Rh3-h6 c3-c2 Rh6-b6+ Kb2-c3
Rb6-c6+ Kc3-d2 Rc6-d6+) +3.22/19} Kb4 {(Ka5-b4 Ra3xa2 c5-c4 Ra2-b2+ Kb4-a3
Rb2-h2 c4-c3 Kc6-c7 Ka3-b3 Rh2-h3 Kb3-b2 Kc7-d7 c3-c2 Rh3-h2 Kb2-c3 Rh2xc2+
Kc3xc2 Kd7-e7 Kc2-d2 Ke7-e6) -0.26/20} 82. Rxa2 {(Ra3xa2 c5-c4 Ra2-b2+
Kb4-a3 Rb2-h2 c4-c3 Kc6-d6 Ka3-b3 Rh2-h3 Kb3-b2 Rh3-h7 c3-c2 Rh7-b7+ Kb2-c3
Rb7-c7+ Kc3-d2 Rc7-c6 c2-c1Q Rc6xc1 Kd2xc1 Kd6-e6) +0.44/21} c4 {(c5-c4
Ra2-b2+ Kb4-a3 Rb2-h2 c4-c3 Kc6-d5 Ka3-b3 Rh2-h3 Kb3-b2 Kd5-e6 c3-c2 Rh3-h2
Kb2-b1 Rh2-h1+ c2-c1Q Rh1xc1+ Kb1xc1 Ke6-f6 Kc1-d2 Kf6-e7 Kd2-e1 Ke7-e6)
0.00/22} 83. Rb2+ {(Ra2-b2+ Kb4-a3 Rb2-h2 c4-c3 Kc6-d6 Ka3-b3 Rh2-h3 Kb3-b2
Rh3-h7 c3-c2 Rh7-b7+ Kb2-a3 Rb7-c7 Ka3-b2 Kd6-d5 c2-c1Q Rc7xc1 Kb2xc1
Kd5-e6 Kc1-d2) +0.26/20} Ka3 {(Kb4-a3 Rb2-h2 c4-c3 Kc6-d5 Ka3-b3 Rh2-h3
Kb3-b2 Kd5-e6 c3-c2 Rh3-h2 Kb2-b1 Rh2-h1+ c2-c1Q Rh1xc1+ Kb1xc1 Ke6-f6
Kc1-d2 Kf6-e6 Kd2-e2 Ke6-f6 Ke2-e1 Kf6-e6 Ke1-e2 Ke6-d7 Ke2-e1 Kd7-e8
Ke1-e2) 0.00/27} 84. Rb7 {(Rb2-b7) +8.48/1} c3 {(c4-c3) -7.26/1} 85. Rd7
{(Rb7-d7) +7.44/1} c2 {(c3-c2) -4.47/1} 86. Ra7+ {(Rd7-a7+ Ka3-b2 Ra7-b7+
Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+
Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+
Kb2-a2 Rb7-a7+ Ka2-b2) 0.00/26} Kb2 {(Ka3-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2
Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2 Rb7-a7+) 0.00/28} 87. Rb7+ {(Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2
Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2) 0.00/28} Ka2 {(Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+
Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+
Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+
Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2) 0.00/29} 88. Ra7+ {(Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2
Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2
Ra7-b7+ Kb2-a2) 0.00/24} Kb2 {(Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+
Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+
Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+ Kb2-a2 Rb7-a7+ Ka2-b2 Ra7-b7+
Kb2-a2) 0.00/27} 89. Rb7+ {(Ra7-b7+) +3.64/1} Kc3 {(Kb2-c3) -3.56/1} 90.
Rb3+ {(Rb7-b3+) -6.94/1} Kxb3 {(Kc3xb3) +7.38/1} 91. Kd7 {(Kc6-d7 c2-c1Q
Kd7-e7 Kb3-c2 Ke7-e8 Qc1-e3+ Ke8-f7 Qe3-e2 Kf7-f8 Kc2-d2 Kf8-f7 Kd2-e3
Kf7-e8 Ke3-f2+ Ke8-f7 Kf2-e3) -18.84/16} c1=Q {(c2-c1Q Kd7-e7 Kb3-c3 Ke7-e8
Kc3-d3 Ke8-f8 Qc1-f1+ Kf8-e8 Kd3-e3 Ke8-d7 Qf1-e2 Kd7-e8 Ke3-f2+ Ke8-f7
Kf2-e3) +18.84/15} 92. Ke7 {(Kd7-e7 Kb3-c2 Ke7-e8 Qc1-e3+ Ke8-f7 Qe3-e2
Kf7-f8 Kc2-d2 Kf8-f7 Kd2-e3 Kf7-e8 Ke3-f2+ Ke8-f7 Kf2-e3) -18.84/14} Qg5+
{(Qc1-g5+ Ke7-e6 Kb3-c4 Ke6-d6 Qg5-g6+ Kd6-e5 Kc4-c5 Ke5-f4 Kc5-d4 Kf4-f3
Qg6-e4+ Kf3-f2 Qe4-e3+ Kf2-f1 Kd4-d3) +20.21/15} 93. Ke6 {(Ke7-e6 Qg5-g6+
Ke6-d7 Qg6-f6 Kd7-e8 Qf6-d6 Ke8-f7 Kb3-c2 Kf7-e8 Qd6-c7 Ke8-f8 Qc7-d7
Kf8-g8 Qd7-e6+ Kg8-g7) -19.13/15} Kc4 {(Kb3-c4 Ke6-d6 Qg5-e3 Kd6-c7 Kc4-c5
Kc7-d7 Kc5-d5 Kd7-c7 Qe3-a7+ Kc7-c8 Kd5-e6 Kc8-d8 Qa7-d7+) +M7/14} 94. Kf7
{(Ke6-f7 Kc4-c5 Kf7-e6 Kc5-c6 Ke6-f7 Kc6-d6 Kf7-f8) -M5/7} Kd3 {(Kc4-d3
Kf7-e6 Qg5-e3+ Ke6-f7) +18.50/4} 95. Ke8 {(Kf7-e8) -16.81/1 White resigns}
0-1
[/pgn]
I saw numerous games like that one. In one game white had a king and a knight against a king and a pawn. And white refused to capture the pawn because it would be a draw. So instead the pawn became a queen and black won.

And even though my compile (I fixed the problem you mentioned) had started a 5000 game test but that is when the above game was played. That imho invalidates even a 5000 game test when it happens as often as it does so I cancelled the test.
User avatar
lithander
Posts: 915
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: Devlog of Leorik

Post by lithander »

I guess this is where the normal Evaluation breaks done and can not accurately reflect how dangerous the pawn is. I should work on it but these problems are not so obvious for me. When on it's road to demise did it blunder exactly and what was the best move?

Are there late endgame testsetsuites available? Otherwise I probably need to compile one based in Leorik's selfplay games.
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Devlog of Leorik

Post by mvanthoor »

lithander wrote: Fri Apr 07, 2023 10:32 am I guess this is where the normal Evaluation breaks done and can not accurately reflect how dangerous the pawn is. I should work on it but these problems are not so obvious for me. When on it's road to demise did it blunder exactly and what was the best move?

Are there late endgame testsetsuites available? Otherwise I probably need to compile one based in Leorik's selfplay games.
The way to solve this is to add a pawn hash table so you don't have to recheck the pawn structure every time, and then add an evaluation term for passed pawns. These are pawns that cannot be blocked or captured by enemy pawns. This evaluation should become higher as the passed pawn moves up the board, so you'll need 6 weights, from rank 2 to 7.

Rustic has the same problem because it doesn't have such code yet: a pawn is a pawn, so it will happily swap its 6th rank passed pawn for an unassuming isolated pawn of the opponent somewhere else on the board or, indeed, refusing to even capture a passed pawn and lose material, even though the draw is the best the engine can hope for.

Adding this will gain about 120 Elo (at least, it did in MadChess 3 if i remember correctly).

It is one of the first evaluation functions I'm going to add after the PSQT's. This is the reason why TSCP wins so many games against engines that don't have a TT: these engines often cannot see that the passed pawns TSCP makes are extremely dangerous in the long run. The TT resolves this for lower-end games, but in higher-end games, passed pawns become a strategic weapon, and you shouldn't let your opponent get one if you can help it.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
lithander
Posts: 915
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: Devlog of Leorik

Post by lithander »

mvanthoor wrote: Fri Apr 07, 2023 1:02 pm The way to solve this is to add a pawn hash table so you don't have to recheck the pawn structure every time, and then add an evaluation term for passed pawns. These are pawns that cannot be blocked or captured by enemy pawns.
This is too obvious a blunder to explain it with a too coarse evaluation function and I have pawn structure eval already including pawn hash table.

As far as I can see move 90 was where Leorik blunders by playing b7b3.

But if I hand that FEN to the engine directly I get a reasonable output:

Code: Select all

Leorik 2.4 Net8 Classic
position fen 8/1R6/2K5/8/8/2k5/2p5/8 w - - 8 90
go depth 20
info depth 1 score cp -694 nodes 49 nps 24500 time 2 pv b7b3
info depth 2 score cp -738 nodes 98 nps 14000 time 7 pv b7b3 c3b3
info depth 3 score cp 29 nodes 545 nps 68125 time 8 pv b7c7 c2c1b c7d7
info depth 4 score cp -22 nodes 830 nps 92222 time 9 pv b7c7 c2c1q c6d7 c3b2
info depth 5 score cp 88 nodes 1821 nps 202333 time 9 pv b7c7 c2c1q c6d7 c3b2 c7c1
info depth 6 score cp 18 nodes 2493 nps 249300 time 10 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1
info depth 7 score cp 44 nodes 3585 nps 325909 time 11 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e6
info depth 8 score cp 26 nodes 4444 nps 370333 time 12 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e6 c1d2
info depth 9 score cp 26 nodes 5415 nps 416538 time 13 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7e6
info depth 10 score cp 0 nodes 6500 nps 464285 time 14 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7e6 d2e1
info depth 11 score cp 0 nodes 8844 nps 552750 time 16 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7d6 d2e1 d6e6
info depth 12 score cp 0 nodes 10743 nps 631941 time 17 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7d6 d2e2 d6e6 e2e1
info depth 13 score cp 0 nodes 18418 nps 837181 time 22 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7d6 d2e2 d6e7 e2e1 e7e6
info depth 14 score cp 0 nodes 24858 nps 920666 time 27 pv b7c7 c2c1q c6d7 c3b2 c7c1 b2c1 d7e7 c1d2 e7d6 d2e2 d6e7 e2d2 e7d
Mike, if you observed more of these kind of games please send them via PM. That would be very helpful because so far I have failed to dig up more instances of this kind of bug from my logs.

Btw... the FEN-tag seems to be broken for me. E.g. [fen]8/1R6/2K5/8/8/2k5/2p5/8 w - - 8 90[/fen]
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Devlog of Leorik

Post by mvanthoor »

lithander wrote: Fri Apr 07, 2023 1:24 pm This is too obvious a blunder to explain it with a too coarse evaluation function and I have pawn structure eval already including pawn hash table.
OK; I didn't know that.
As far as I can see move 90 was where Leorik blunders by playing b7b3.

But if I hand that FEN to the engine directly I get a reasonable output:
As b7b3 was also one of the first moves at low depth, could it be that Leorik didn't spend enough time on that move for whatever reason? It seems impossible, because even the current version of Rustic immediately sees the solution (in 5 miliseconds) to draw this position. (It moves the king out of the way so it can check with the rook and then capture the queen after promotion.)
Last edited by mvanthoor on Fri Apr 07, 2023 2:04 pm, edited 2 times in total.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
JoAnnP38
Posts: 253
Joined: Mon Aug 26, 2019 4:34 pm
Location: Clearwater, Florida USA
Full name: JoAnn Peeler

Re: Devlog of Leorik

Post by JoAnnP38 »

lithander wrote: Fri Apr 07, 2023 1:24 pm
mvanthoor wrote: Fri Apr 07, 2023 1:02 pm The way to solve this is to add a pawn hash table so you don't have to recheck the pawn structure every time, and then add an evaluation term for passed pawns. These are pawns that cannot be blocked or captured by enemy pawns.
This is too obvious a blunder to explain it with a too coarse evaluation function and I have pawn structure eval already including pawn hash table.

As far as I can see move 90 was where Leorik blunders by playing b7b3.
I had a problem looked a lot like this and it turned out to be a bug in my staged move generation. This bug caused the pawn promotion not to be made whenever it was in my killers. Since it was never made the search never saw the increase in material when it gets promoted to a queen and happily ignored it. However, if I fed the FEN string directly in my test suite, it wouldn't make the same blunder because the move wasn't yet in my killers. I also uncovered a bug in my IsValidMove method that I use to test killers before blindly making the move although I don't recall exactly what it was.

This turned out to be a HUGE find for me, so I doubt this is Leorik's problem because it increased my Elo a huge amount once I fixed it.
User avatar
Ras
Posts: 2695
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Devlog of Leorik

Post by Ras »

lithander wrote: Fri Apr 07, 2023 1:24 pmBtw... the FEN-tag seems to be broken for me.
That's because the script is loaded from HGM's server, but this has only a self-signed https certificate which the browser ofc doesn't accept. That means, if Talkchess itself is loaded via https, the browser will block this script.
JoAnnP38 wrote: Fri Apr 07, 2023 2:03 pmThis bug caused the pawn promotion not to be made whenever it was in my killers.
I don't put promotions in the killers slots to begin with because they are not quiet moves.
Rasmus Althoff
https://www.ct800.net
JoAnnP38
Posts: 253
Joined: Mon Aug 26, 2019 4:34 pm
Location: Clearwater, Florida USA
Full name: JoAnn Peeler

Re: Devlog of Leorik

Post by JoAnnP38 »

Ras wrote: Fri Apr 07, 2023 2:30 pm
JoAnnP38 wrote: Fri Apr 07, 2023 2:03 pmThis bug caused the pawn promotion not to be made whenever it was in my killers.
I don't put promotions in the killers slots to begin with because they are not quiet moves.
Yep, that was part of my fix. Previously I was only excluding captures from my killers.
Mike Sherwin
Posts: 965
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Devlog of Leorik

Post by Mike Sherwin »

It might be a TT bug, storing the wrong score.
Mike Sherwin
Posts: 965
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Devlog of Leorik

Post by Mike Sherwin »

Mike Sherwin wrote: Fri Apr 07, 2023 3:09 pm It might be a TT bug, storing the wrong score.
It could be that my downloaded copy is corrupt. If it is that would be a first.