SjaakII 1.4.0

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

Moderator: Ras

User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: SjaakII 1.4.1

Post by gbtami »

Wow! I'v never thought pychess will win any game against C engines :D
Regarding memory settings, unfortunately pychess doesn't support it. It uses one fixed size TrenspositionTable object.
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: SjaakII 1.4.1

Post by gbtami »

Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: SjaakII 1.4.1

Post by Guenther »

gbtami wrote:
Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)

I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.

May be I should try py2exe for cross-compilation.

Any idea about the speed differences?
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: SjaakII 1.4.1

Post by Ferdy »

gbtami wrote:
Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
I am using pypy2-v5.6.0-win32
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: SjaakII 1.4.1

Post by gbtami »

Guenther wrote:
gbtami wrote:
Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)

I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.

May be I should try py2exe for cross-compilation.

Any idea about the speed differences?
py2exe doesn't help here. It's just an exe packer, not a Python compiler.

Pychess engine supports "benchmark" command. Results with different Python versions I have:

# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s

# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s

# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s

# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: SjaakII 1.4.1

Post by Guenther »

gbtami wrote:
Guenther wrote:
gbtami wrote:
Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)

I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.

May be I should try py2exe for cross-compilation.

Any idea about the speed differences?
py2exe doesn't help here. It's just an exe packer, not a Python compiler.

Pychess engine supports "benchmark" command. Results with different Python versions I have:

# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s

# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s

# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s

# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
I started a match with pychess with two 'versions' one with pypy3 (3.25) and one with pypy2 (2.7.10) to get some insight about how much memory those collect (w/o releasing) with a tc of 40/3min.

During game 7 pypy3 is already at >410MB and pypy2 at around 200MB.

I guess though when using /xreuse and /xreuse2 that would be a workaround at least for not too long time controls?

Edit:
Does some real py2exe compiler exist?

Edit2:
I think you could easily improve it by 100-200 rating points w/o too much work if you are in the mood? :)
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: SjaakII 1.4.1

Post by gbtami »

Guenther wrote:
gbtami wrote:
Guenther wrote:
gbtami wrote:
Ferdy wrote:
Guenther wrote: @Ferdinand & Tamas (hopefully reading here too?)
Is there a way to tell pypy which runs pychess, a max hash size?
I noticed that it used around 800MB when I came home. In the beginning
it was perhaps 200MB or so.

Guenther
I am not familiar with this engine.
I can confirm that the engine leaks memory :( fortunately this only happens when using pypy. If I use python 2.7 it will not leak.
Interesting. I'm not sure, but doesn't this mean pychess engine can trigger a pypy bug instead?
Probably yes. Here it was with pypy3. (precisely 3.25 Jun 19 2014 - later ones are all called beta...)

I can check with pypy2 once. The 'normal' python installations were already uninstalled by me, because I don't like duplicate solutions.

May be I should try py2exe for cross-compilation.

Any idea about the speed differences?
py2exe doesn't help here. It's just an exe packer, not a Python compiler.

Pychess engine supports "benchmark" command. Results with different Python versions I have:

# PyChess 0.12.4 [python3 3.5.2]
Total: 3214246 nodes in 368.5901551246643 s: 8720.379411416672 n/s

# PyChess 0.12.4 [python 2.7.12]
Total: 3214246 nodes in 351.296264887 s: 9149.6731428 n/s

# PyChess 0.12.4 [pypy3 3.3.5]
Total: 3214246 nodes in 301.78897404670715 s: 10650.640932635726 n/s

# PyChess 0.12.4 [pypy 2.7.10]
Total: 3214246 nodes in 282.432559967 s: 11380.5787845 n/s
I started a match with pychess with two 'versions' one with pypy3 (3.25) and one with pypy2 (2.7.10) to get some insight about how much memory those collect (w/o releasing) with a tc of 40/3min.

During game 7 pypy3 is already at >410MB and pypy2 at around 200MB.

I guess though when using /xreuse and /xreuse2 that would be a workaround at least for not too long time controls?

Edit:
Does some real py2exe compiler exist?

Edit2:
I think you could easily improve it by 100-200 rating points w/o too much work if you are in the mood? :)
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting here :(

Regarding python compilers, there is cython http://cython.org/ and nuitka http://nuitka.net/. Telling the truth I'v never tried them.

Improving pychess engine may be trivial for real engine developers, but that is definitely not me :) Of course any contributions are welcome!
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: SjaakII 1.4.1

Post by Guenther »

gbtami wrote:
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting here :(
Those commands for WB/XB just reload the engine after each game, which should reload pypy too in this case.
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: SjaakII 1.4.1

Post by gbtami »

Guenther wrote:
gbtami wrote:
I'm sorry but I don't know what are "/xreuse and /xreuse2" you are suggesting here :(
Those commands for WB/XB just reload the engine after each game, which should reload pypy too in this case.
Ahh, I see now, thx!
Guenther
Posts: 4718
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: pychess

Post by Guenther »

I hope Evert doesn't mind for another pychess post in his Sjaak thread.

There were 4 time losses in 12 games, three of them though duplicates
and the losing side always Black. Note that resign was set too very late, 20.00 pawns.

Its seems pychess sometimes doesn't move anymore when it has found
a mate against itself, or the position is very bad, at least that is my impression?

I have no WB debug files, but as I ran it with Inbetween (because of the pypy command line) and log on, I have log excerpts.

Code: Select all

939.235: > usermove Qeh3
939.235: < # Time left: 5.76 s; Planing to think for 0.20 s
940.030: < move h6
940.810: > time 496
940.810: > otim 20904
940.810: > usermove N@e7
940.810: < # Time left: 4.96 s; Planing to think for 0.18 s
946.785: > result 1-0 {White wins on time}

1956.034: > usermove P@g4+
1956.034: < # Time left: 44.58 s; Planing to think for 2.96 s
1956.205: < 1 -1737 16 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
1957.110: < 2 -32759 106 8005 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
1957.110: < move Nxg4
1958.155: > time 4351
1958.155: > otim 3294
1958.155: > usermove Rg5+
1958.155: < # Time left: 43.51 s; Planing to think for 2.95 s
2001.680: > result 1-0 {White wins on time}

3192.716: > usermove P@g4+
3192.716: < # Time left: 36.52 s; Planing to think for 2.43 s
3192.841: < 1 -1737 13 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
3193.543: < 2 -32759 83 8005 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
3193.559: < move Nxg4
3194.510: > time 3569
3194.510: > otim 3869
3194.510: > usermove Rg5+
3194.510: < # Time left: 35.69 s; Planing to think for 2.42 s
3231.217: > result 1-0 {White wins on time}

3826.174: > usermove P@g4+
3826.189: < # Time left: 39.86 s; Planing to think for 2.65 s
3826.314: < 1 -1737 12 979 Kh4 Rxh7+ P@h5 Qxf8 Nxh7 Rxh7
3827.016: < 2 -32759 83 8006 Nxg4 Rg5+ Kh4 Rxg4+ Kh5 Rxh7+ P@h6 Rxh6#
3827.016: < move Nxg4
3827.937: > time 3903
3827.937: > otim 4214
3827.937: > usermove Rg5+
3827.937: < # Time left: 39.03 s; Planing to think for 2.65 s
3866.984: > result 1-0 {White wins on time}

Code: Select all

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "2"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "3"]
[Annotator "1. +0.28   1... -0.38"]

1. e4 {+0.28/4} e6 {-0.38/4 2.3} 2. Nc3 {+0.28/4 2.4} d5 {-0.18/4 1.9} 3.
d4 {+0.12/4 3} dxe4 {+0.02/4 4} 4. Nxe4 {-0.02/4 4} P@d5 {+0.02/3 5} 5. Nc3
{-0.02/3 5} Nf6 {-0.13/4 2.2} 6. Be3 {+0.13/3 5} Nc6 {-0.01/3 5} 7. Qe2
{+0.42/3 2.0} Bd6 {+0.12/3 2.2} 8. P@c5 {+1.10/3 4} Be7 {+0.02/3 3} 9.
O-O-O {+0.22/3 5} O-O {+0.42/3 5} 10. Kb1 {-0.05/3 1.3} e5 {+0.05/3 5} 11.
dxe5 {+3.18/4 4} Nxe5 {-3.18/3 1.9} 12. P@g5 {+3.18/2 2.1} Nfd7 {-3.18/2 5}
13. Nxd5 {+3.18/2 3} Nxc5 {-3.18/2 6} 14. P@f6 {+6.64/2 4} gxf6 {-6.64/2 5}
15. Nxf6+ {+6.64/3 3} Bxf6 {-6.64/4 2.3} 16. Rxd8 {+6.64/3 5} Bxd8
{-6.30/3 4} 17. Bxc5 {+6.30/2 2.5} R@e6 {-6.95/2 6} 18. N@h6+ {+6.82/2 2.4}
Rxh6 {-7.72/3 4} 19. gxh6 {+7.72/2 5} Bf6 {-9.23/2 5} 20. Q@f4
{+10.33/2 2.5} P@g7 {-10.33/2 4} 21. Qexe5 {+10.33/1 6} N@d2+ {-10.46/2 5}
22. Ka1 {+10.46/2 5} Bxe5 {-10.70/2 2.5} 23. N@e7+ {+10.70/2 5} Kh8
{-9.07/4 4} 24. hxg7+ {+8.82/2 4} Bxg7 {-8.53/3 5} 25. Qxd2 {+8.53/2 1.2}
N@e4 {-8.43/2 1.6} 26. Qe3 {+8.15/2 4} Q@d1+ {-8.15/1 1.2} 27. R@b1
{+8.15/1 1.2} Qxc2 {-8.58/1 7} 28. Bxa7 {+8.58/1 1.2} P@b6 {-8.14/1 4} 29.
Nxc8 {+8.14/1 8} Rfxc8 {-8.14/1 14} 30. P@d7 {+9.10/1 6} Rd8 {-9.07/1 3}
31. B@d3 {+9.13/1 1.4} N@b3+ 32. axb3 {+4.79/1 6} Rxa7+ 33. P@a2
{+4.79/2 1.7} Qxb3 {-4.79/1 0.9} 34. N@c1 {+4.87/1 4} Rda8 {-4.56/1 0.8}
35. d8=Q+ {+14.98/2 1.9} Rxd8 {-14.98/2 32} 36. Nxb3 {+14.67/2 3} Rda8
{-14.67/1 4} 37. P@a6 {+14.83/1 5} P@d5 38. Q@h5 {+14.50/1 4} B@c6 39. Qeh3
{+14.69/1 10} h6 40. N@e7 {+15.15/1 0.8}
{White wins on time} 1-0

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "6"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "7"]
[Annotator "1. +0.28   1... -0.38"]

1. e4 {+0.28/4} e6 {-0.38/4 5} 2. d4 {+0.28/4 3} d5 {-0.20/4 1.8} 3. Bb5+
{+0.20/3 5} Nc6 {-0.04/4 1.6} 4. Nc3 {+0.04/3 6} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.6} Be7 {+0.43/3 4} 6. Nge2 {+0.11/3 1.6} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 2.4} bxc6 {+0.24/4 3} 8. O-O {-0.24/3 2.8} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 6} c5 {+0.40/2 5} 10. Nc6 {+0.97/3 4} Qd6 {-0.97/2 6} 11. Nxe7+
{+1.18/3 2.3} Qxe7 {-1.09/3 4} 12. B@c6 {+1.09/2 5} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.4} Nxa4 {-2.12/2 5} 14. Bxa8 {+1.87/3 2.6} N@b6
{-1.87/2 1.8} 15. Bc6 {+1.87/2 6} cxd4 {-1.87/2 1.7} 16. exd5 {+1.47/2 5}
exd5 {-1.47/2 2.0} 17. Nxd4 {+1.47/1 6} P@e3 {-1.36/2 5} 18. P@b7
{+0.96/2 5} P@f2+ {-0.96/2 10} 19. Kh1 {+1.51/3 1.6} Bd7 {-1.51/2 5} 20.
R@a8 {+1.31/2 2.6} Bxc6 {-1.31/2 2.9} 21. Nxc6 {+1.25/3 1.9} Qe6
{-1.25/2 7} 22. Nd4 {+2.06/2 2.6} Nxa8 {-2.06/2 6} 23. Nxe6 {+2.06/1 5}
fxe6 {-2.06/2 1.3} 24. bxa8=N {+2.06/1 7} Rxa8 {-2.87/2 3} 25. Q@c6
{+2.87/1 5} R@g1+ {-6.67/1 4} 26. Rxg1 {+6.67/2 8} fxg1=R+ {-6.67/1 8} 27.
Qxg1 {+11.92/2 4} N@f2+ {-11.92/1 4} 28. Qxf2 {+11.92/2 6} exf2
{-11.92/1 5} 29. Qxa8+ {+11.92/2 1.6} R@f8 {-11.98/2 1.0} 30. N@e7+
{+11.82/2 4} Kf7 {-5.00/3 1.1} 31. N@e5+ {+5.00/2 3} Kxe7 {-4.89/3 4} 32.
Nc6+ {+4.89/2 4} Kf7 {-5.04/3 1.5} 33. R@e7+ {+5.04/2 3} Kg6 {-14.73/2 4}
34. R@g5+ {+14.73/2 1.6} Kh6 {-14.73/2 2.4} 35. Rgxg7+ {+14.73/1 2.3} Kh5
{-17.37/2 1.6} 36. P@g4+ {+17.37/1 10} Nxg4 {-327.59/2 1.1} 37. Rg5+
{+327.60/1 1.0}
{White wins on time} 1-0

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "10"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "11"]
[Annotator "1. +0.28   1... -0.38"]

1. e4 {+0.28/4} e6 {-0.38/4 5} 2. d4 {+0.28/4 1.9} d5 {-0.20/4 1.7} 3. Bb5+
{+0.20/3 5} Nc6 {-0.04/4 5} 4. Nc3 {+0.04/3 5} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.5} Be7 {+0.43/3 4} 6. Nge2 {+0.11/3 5} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 2.2} bxc6 {+0.56/3 5} 8. O-O {-0.24/3 3} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 6} c5 {+0.40/2 5} 10. Nc6 {+0.97/2 5} Qd6 {-0.97/2 5} 11. Nxe7+
{+1.18/3 3} Qxe7 {-1.09/3 4} 12. B@c6 {+1.09/2 1.3} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.6} Nxa4 {-2.12/2 5} 14. Bxa8 {+1.87/3 4} N@b6 {-1.87/2 2.0}
15. Bc6 {+1.87/2 6} cxd4 {-1.87/2 5} 16. exd5 {+1.47/2 1.6} exd5
{-1.47/2 2.0} 17. Nxd4 {+1.47/1 5} P@e3 {-1.36/2 5} 18. P@b7 {+0.96/2 5}
P@f2+ {-0.96/2 16} 19. Kh1 {+1.51/3 5} Bd7 {-1.51/2 9} 20. R@a8
{+1.31/2 2.1} Bxc6 {-1.31/2 2.6} 21. Nxc6 {+1.25/3 2.0} Qe6 {-1.25/2 5} 22.
Nd4 {+2.06/2 2.0} Nxa8 {-2.06/2 5} 23. Nxe6 {+2.06/2 4} fxe6 {-2.06/2 1.2}
24. bxa8=N {+2.06/1 8} Rxa8 {-2.87/2 3} 25. Q@c6 {+2.87/1 4} R@g1+
{-6.67/1 3} 26. Rxg1 {+6.67/2 8} fxg1=R+ {-6.67/1 7} 27. Qxg1 {+11.92/2 4}
N@f2+ {-11.92/1 3} 28. Qxf2 {+11.92/2 6} exf2 {-11.92/1 4} 29. Qxa8+
{+11.92/2 1.7} R@f8 {-11.98/2 2.9} 30. N@e7+ {+11.82/2 4} Kf7 {-5.00/3 0.9}
31. N@e5+ {+5.00/2 4} Kxe7 {-4.89/3 2.9} 32. Nc6+ {+4.89/2 4} Kf7
{-5.04/3 1.5} 33. R@e7+ {+5.04/2 3} Kg6 {-14.73/2 2.7} 34. R@g5+
{+14.73/2 1.3} Kh6 {-14.73/2 1.9} 35. Rgxg7+ {+14.73/1 1.9} Kh5
{-17.37/2 1.3} 36. P@g4+ {+17.37/1 8} Nxg4 {-327.59/2 0.8} 37. Rg5+
{+327.60/1 1.0}
{White wins on time} 1-0

[Event "RWBC"]
[Site "CAPPUCCINO"]
[Date "2016.11.30"]
[Round "12"]
[White "PyChess-pypy3_20161118"]
[Black "PyChess-pypy2_20161118"]
[Result "1-0"]
[TimeControl "40/180"]
[Variant "crazyhouse"]
[Number "13"]
[Annotator "1. +0.28   1... -0.38"]

1. e4 {+0.28/4} e6 {-0.38/4 1.6} 2. d4 {+0.28/4 1.9} d5 {-0.20/4 2.3} 3.
Bb5+ {+0.20/3 5} Nc6 {-0.04/4 5} 4. Nc3 {+0.04/3 5} Nf6 {+0.06/3 5} 5. f3
{+0.08/3 2.2} Be7 {+0.43/3 5} 6. Nge2 {+0.11/3 2.1} a6 {+0.78/3 4} 7. Bxc6+
{+0.22/3 3} bxc6 {+0.56/3 5} 8. O-O {-0.24/3 2.2} O-O {+0.55/3 4} 9. N@a5
{-0.55/2 5} c5 {+0.40/2 5} 10. Nc6 {+0.97/2 6} Qd6 {-0.97/2 5} 11. Nxe7+
{+1.18/3 4} Qxe7 {-1.18/2 5} 12. B@c6 {+1.09/2 1.3} N@b6 {-1.00/2 5} 13.
Na4 {+2.12/2 2.7} Nxa4 {-2.12/2 2.1} 14. Bxa8 {+1.87/3 4} N@b6
{-1.87/2 2.3} 15. Bc6 {+1.87/2 5} cxd4 {-1.87/2 1.9} 16. exd5 {+1.47/2 1.7}
exd5 {-1.47/2 4} 17. Nxd4 {+1.47/1 6} P@e3 {-1.36/2 5} 18. P@b7 {+0.96/2 5}
P@f2+ {-0.96/2 6} 19. Kh1 {+1.51/3 6} Bd7 {-1.51/2 8} 20. R@a8
{+1.31/2 2.2} Bxc6 {-1.31/2 3} 21. Nxc6 {+1.25/3 2.2} Qe6 {-1.25/2 6} 22.
Nd4 {+2.06/2 2.3} Nxa8 {-2.06/2 5} 23. Nxe6 {+2.06/2 4} fxe6 {-2.06/2 1.2}
24. bxa8=N {+2.06/1 6} Rxa8 {-2.87/2 4} 25. Q@c6 {+2.87/1 5} R@g1+
{-6.67/1 4} 26. Rxg1 {+6.67/2 4} fxg1=R+ {-6.67/1 8} 27. Qxg1 {+11.92/2 4}
N@f2+ {-11.92/1 4} 28. Qxf2 {+11.92/2 5} exf2 {-11.92/1 6} 29. Qxa8+
{+11.92/2 1.8} R@f8 {-11.98/2 3} 30. N@e7+ {+11.82/2 4} Kf7 {-5.00/3 4} 31.
N@e5+ {+5.00/2 4} Kxe7 {-4.89/3 3} 32. Nc6+ {+4.89/2 4} Kf7 {-5.04/3 1.5}
33. R@e7+ {+5.04/2 4} Kg6 {-14.73/2 3} 34. R@g5+ {+14.73/2 1.4} Kh6
{-14.73/2 1.9} 35. Rgxg7+ {+14.73/1 2.0} Kh5 {-17.37/2 1.3} 36. P@g4+
{+17.37/1 8} Nxg4 {-327.59/2 0.8} 37. Rg5+ {+327.60/1 0.9}
{White wins on time} 1-0