Monchester

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

Moderators: hgm, Rebel, chrisw

unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Monchester

Post by unserializable »

Monchester 0.99

Image

Happy Halloween 2020! The origins of this little chess engine date back to 16th October 2002 and it has risen from the grave after I fixed the segmentation faults and many bugs it had. It plays well enough for scholastic chess and to demonstrate that most often the way to win is not making really good moves, but just avoiding bad ones -- monstrous only so far as it has risen from the grave, not with regard to its monstrous playing "quality". :) It retains structure and idiocracies that I had coded into it at the time, so it prefers knights to bishops, piece values are rather weird and it only looks ahead fixed depth (4 plys) -- but it got added CECP support and plays nicely in XBoard, as far as I have tested (hope same for WinBoard).

I was running a little late with release in time for Halloween, even after 18 years :), so this is version 0.99 for basic testing, it includes binaries for Linux (statically and dynamically compiled x64) and Mac OS X (x64 compile done by my friend). It can be built from sources also, preferred way is

Code: Select all

make CC=clang clean release
Distribution tar.gz contains a more detailed README.md for compiling from sources.

I had no time to select and attach suitable open source license at the time or to remove old outdated comments and copyright notes in this distribution, but license selected will probably be GPLv3.

Download link (tar.gz, Dropbox): https://www.dropbox.com/s/b28nd82xz09o8 ... ar.gz?dl=0

I would appreciate feedback on whether the binaries run and whether the distribution code compiles (especially interesting to know about Windows, which I do not really have access to).

With regards to comparative playing strength, this 0.99 release should fall somewhere between ChessPuter & GiuChess in terms of CCRL 404.

Thanks to the developers of N.E.G. 1.3., ChessPuter and GiuChess for providing faithful sparring partners for making the dusted code work against real opponents, while allowing for some wins :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
Roland Chastain
Posts: 640
Joined: Sat Jun 08, 2013 10:07 am
Location: France
Full name: Roland Chastain

Re: Monchester

Post by Roland Chastain »

Hello! Thank you for sharing.

It seems to work well on Linux (tested only the static version).

If you have time and desire, I would suggest that you add the promotion symbol, for CuteChess users like me. :wink:

Code: Select all

Finished game 4 (Monchester 0.99 vs Sachy 0.2.03 32-bit): 0-1 {White makes an illegal move: b7b8}
Regards.

Roland
Qui trop embrasse mal étreint.
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Monchester

Post by unserializable »

Roland Chastain wrote: Sun Nov 01, 2020 1:09 pm If you have time and desire, I would suggest that you add the promotion symbol, for CuteChess users like me. :wink:
Thank you, Roland, that is very useful! There is an oversight indeed, as XBoard which I have been using seems to default to queen when move is made to promotion rank -- will certainly fix this in due time, will allow for some more feedback time before releasing 1.0.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
Guenther
Posts: 4607
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Monchester

Post by Guenther »

unserializable wrote: Sun Nov 01, 2020 12:01 am Monchester 0.99

Happy Halloween 2020! The origins of this little chess engine date back to 16th October 2002 and it has risen from the grave after I fixed the segmentation faults and many bugs it had. It plays well enough for scholastic chess and to demonstrate that most often the way to win is not making really good moves, but just avoiding bad ones -- monstrous only so far as it has risen from the grave, not with regard to its monstrous playing "quality". :) It retains structure and idiocracies that I had coded into it at the time, so it prefers knights to bishops, piece values are rather weird and it only looks ahead fixed depth (4 plys) -- but it got added CECP support and plays nicely in XBoard, as far as I have tested (hope same for WinBoard).

...

I would appreciate feedback on whether the binaries run and whether the distribution code compiles (especially interesting to know about Windows, which I do not really have access to).
...
It seems 'flock' must be replaced for Windows compilation.

Code: Select all

main.c: In function 'main':
main.c:267:6: warning: implicit declaration of function 'flock'; did you mean 'clock'? [-Wimplicit-function-declaration]
  267 |      flock(fileno(tgtf[1]), LOCK_EX);
      |      ^~~~~
      |      clock
main.c:267:29: error: 'LOCK_EX' undeclared (first use in this function)
  267 |      flock(fileno(tgtf[1]), LOCK_EX);
      |                             ^~~~~~~
main.c:267:29: note: each undeclared identifier is reported only once for each function it appears in
main.c:305:28: error: 'LOCK_UN' undeclared (first use in this function)
  305 |     flock(fileno(tgtf[1]), LOCK_UN);
      |                            ^~~~~~~
make: *** [Makefile:13: monchester] Fehler 1
https://rwbc-chess.de

trollwatch:
Talkchess nowadays is a joke - it is full of trolls/idiots/people stuck in the pleistocene > 80% of the posts fall into this category...
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Monchester

Post by unserializable »

Guenther wrote: Sun Nov 01, 2020 1:37 pm It seems 'flock' must be replaced for Windows compilation.
Thanks, Guenther, for helping to cover the Windows blind spot! The flock call is used for the "feature" of saving Monchester games to user home folder in '.monchester.pgn' file -- come to think of it, for general release this is probably "misfeature", as it creates a file user might not even notice and whatever engine GUI is used probably supports saving games already by itself. So for 1.0 I think it would be best to disable that feature by default.

This game score keeping feature into a file can be disabled by setting

Code: Select all

#define FEATURE_KEEP_GAMESCORES 0
in features.h or by giving 'extended flags' to make, e.g. when using clang compiler.

Code: Select all

make CC=clang EXTFLAGS="-DFEATURE_KEEP_GAMESCORES=0" clean release
Appreciate if you let me know whether this modification enables successful Windows compile.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
Guenther
Posts: 4607
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Monchester

Post by Guenther »

unserializable wrote: Sun Nov 01, 2020 2:42 pm
Guenther wrote: Sun Nov 01, 2020 1:37 pm It seems 'flock' must be replaced for Windows compilation.
Thanks, Guenther, for helping to cover the Windows blind spot! The flock call is used for the "feature" of saving Monchester games to user home folder in '.monchester.pgn' file -- come to think of it, for general release this is probably "misfeature", as it creates a file user might not even notice and whatever engine GUI is used probably supports saving games already by itself. So for 1.0 I think it would be best to disable that feature by default.

...

Code: Select all

# Monchester 0.99 ~(3238 kN/s)
command : help
commands implemented so far: new, help, bench, quit
command : new
Who will play WHITE, human or computer (h,c)? :h
player's name (WHITE) : GS
Who will play BLACK, human or computer (h,c)? :c
8:  R N B Q K B N R
7:  P P P P P P P P
6:  - - - - - - - -
5:  - - - - - - - -
4:  - - - - - - - -
3:  - - - - - - - -
2:  p p p p p p p p
1:  r n b q k b n r
-------------------
    A B C D E F G H       rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
command : e2e4
8:  R N B Q K B N R
7:  P P P P P P P P
6:  - - - - - - - -
5:  - - - - - - - -
4:  - - - - p - - -
3:  - - - - - - - -
2:  p p p p - p p p
1:  r n b q k b n r
-------------------
    A B C D E F G H       rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
Monchester plays a7 a6 (2067 kN/s)
8:  R N B Q K B N R
7:  - P P P P P P P
6:  P - - - - - - -
5:  - - - - - - - -
4:  - - - - p - - -
3:  - - - - - - - -
2:  p p p p - p p p
1:  r n b q k b n r
-------------------
    A B C D E F G H       rnbqkbnr/1ppppppp/p7/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2
command : d2d4
8:  R N B Q K B N R
7:  - P P P P P P P
6:  P - - - - - - -
5:  - - - - - - - -
4:  - - - p p - - -
3:  - - - - - - - -
2:  p p p - - p p p
1:  r n b q k b n r
-------------------
    A B C D E F G H       rnbqkbnr/1ppppppp/p7/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq d3 0 2
Monchester plays b8 c6 (1777 kN/s)
8:  R - B Q K B N R
7:  - P P P P P P P
6:  P - N - - - - -
5:  - - - - - - - -
4:  - - - p p - - -
3:  - - - - - - - -
2:  p p p - - p p p
1:  r n b q k b n r
-------------------
    A B C D E F G H       r1bqkbnr/1ppppppp/p1n5/8/3PP3/8/PPP2PPP/RNBQKBNR w KQkq - 1 3
command :
Thanks Taimo. I played a few moves against it in the console after I issued help and tried the 'new' command.

First I immediately sent 'go' after 'xboard', but this led to a crash, with 'new' after 'xboard' it works now too with 'go'.

Edit:
Its first game here in Winboard :)

[pgn][Event "Test_2019 Winboard 4.9.1"]
[Site "CAPPUCCINO"]
[Date "2020.11.01"]
[Round "-"]
[White "Monchester 0.99"]
[Black "Alouette 0.0.9 (UCI2WB)"]
[Result "1-0"]
[TimeControl "180"]
[Annotator "1. -0.28"]

1. Nf3 {-0.28/4} a6 2. Nc3 {-0.20/4 0.07} c6 3. d3 {-0.34/4 0.09} Qb6 4. a3
{-0.91/4 0.27} f6 5. b4 {-0.62/4 0.27} h6 6. Be3 {-0.11/4 0.23} Qc7 7. h3
{-0.37/4 0.26} Qd6 8. Qc1 {-0.48/4 0.30} b5 9. Kd2 {-0.48/4 0.28} g5 10.
Rb1 {-0.54/4 0.24} Bb7 11. Ke1 {-0.74/4 0.23} Qe6 12. Bd2 {-0.80/4 0.27}
Bc8 13. g4 {-0.51/4 0.21} Bg7 14. Kd1 {-0.68/4 0.20} Qd6 15. d4
{-0.60/4 0.19} Bf8 16. Bg2 {-0.57/4 0.16} Bb7 17. e4 {-0.68/4 0.18} Bg7 18.
Re1 {-0.48/4 0.18} Bc8 19. Qb2 {-0.54/4 0.18} Bf8 20. Rg1 {-0.45/4 0.20}
Bb7 21. Qb3 {-0.42/4 0.20} Kd8 22. Ra1 {-0.48/4 0.29} Bc8 23. a4
{-0.31/4 0.29} bxa4 24. Qxa4 {-0.45/4 0.38} Ke8 25. Ke2 {-0.48/4 0.28} Qe6
26. Kd3 {-0.42/4 0.38} Bb7 27. Qa2 {-0.34/4 0.36} Qd6 28. Rab1
{-0.45/4 0.38} Bc8 29. Qa4 {-0.48/4 0.39} Bg7 30. Rge1 {-0.48/4 0.39} Bb7
31. Ra1 {-0.42/4 0.38} Bf8 32. Red1 {-0.45/4 0.36} Bc8 33. Re1
{-0.45/4 0.34} Bg7 34. Rg1 {-0.45/4 0.39} Bb7 35. Qa5 {-0.42/4 0.40} Bf8
36. Qf5 {-0.40/4 0.42} Kf7 37. Ne5+ {+0.08/4 0.41} Ke8 38. Qg6+
{+0.25/4 0.35} Kd8 39. Nf7+ {+33.05/4 0.42} Kc7 40. Nxd6 {+33.00/4 0.47}
exd6 41. Rh1 {+32.97/4 0.19} Be7 42. Qg7 {+57.65/4 0.18} d5 43. Qxh8
{+57.51/4 0.27} dxe4+ 44. Nxe4 {+58.42/4 0.03} f5 45. gxf5 {+59.37/4 0.33}
d5 46. Qxg8 {+60.14/4 0.28} dxe4+ 47. Bxe4 {+60.00/4 0.03} Bc8 48. Qh7
{+60.54/4 0.39} Kd7 49. f6 {+68.45/4 0.13} Bb7 50. Qxe7+ {+68.62/4 0.18}
Kc8 51. Bf5+ {+78.80/4 0.07} Nd7 52. Qd6 {+78.59/4 0.12} c5 53. Bxd7+
{+78.54/4 0.26} Kd8 54. Be6+ {+2857.14/3 0.22} Ke8 55. Qe7#
{+2857.14/1 0.29}
{Xboard adjudication: Checkmate} 1-0[/pgn]
https://rwbc-chess.de

trollwatch:
Talkchess nowadays is a joke - it is full of trolls/idiots/people stuck in the pleistocene > 80% of the posts fall into this category...
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Monchester

Post by unserializable »

Guenther wrote: Sun Nov 01, 2020 3:06 pm First I immediately sent 'go' after 'xboard', but this led to a crash, with 'new' after 'xboard' it works now too with 'go'.
Will add a state check before go so that it will not crash, my impression was CECP protocol implementations would send new or setboard before go but I will double-check that, hopefully will not affect usage via most GUI at the moment.
Guenther wrote: Sun Nov 01, 2020 3:06 pm Its first game here in Winboard :)
That is very cool, starting off with WIN in WINboard :wink: , thanks for the historical game :)!

Could you give me some information about your Windows compilation environment, so that I could add note along the line of "Known to compile in Windows X with compiler Y under conditions Z" to the 1.0 release README?
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
Guenther
Posts: 4607
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Monchester

Post by Guenther »

unserializable wrote: Sun Nov 01, 2020 10:27 pm
Guenther wrote: Sun Nov 01, 2020 3:06 pm First I immediately sent 'go' after 'xboard', but this led to a crash, with 'new' after 'xboard' it works now too with 'go'.
Will add a state check before go so that it will not crash, my impression was CECP protocol implementations would send new or setboard before go but I will double-check that, hopefully will not affect usage via most GUI at the moment.
This is probably not needed, I don't think much people will try it from cmd ;-)
(It's a quick way to confirm a compilation almost works)
I was just used from the past that xboard engines mostly could be fed with 'go' after 'xboard' already,
but may be that is already a relaxation from the protocol specs. GUIs at least will always send 'new' before.
Guenther wrote: Sun Nov 01, 2020 3:06 pm Its first game here in Winboard :)
unserializable wrote: Sun Nov 01, 2020 10:27 pm That is very cool, starting off with WIN in WINboard :wink: , thanks for the historical game :)!

Could you give me some information about your Windows compilation environment, so that I could add note along the line of "Known to compile in Windows X with compiler Y under conditions Z" to the 1.0 release README?
It's nothing special. I have Msys2 installed and all kind of toolchains with it. A lot of people have this nowaydays.
This was under Win-7 Ultimate.

BTW I have a question, you have already said it uses a fixed depth (4) currently, but I found only a setting which corresponds to (3) in it.
I changed it to (5) in another compilation for not playing immediately but that resulted in depth (6) playing (that was too slow ofc).
It seems then the default depth setting starts from zero counting?

Code: Select all

globals.c/15: #define MONCHESTER_DEPTH_DEFAULT 3
https://rwbc-chess.de

trollwatch:
Talkchess nowadays is a joke - it is full of trolls/idiots/people stuck in the pleistocene > 80% of the posts fall into this category...
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: Monchester

Post by unserializable »

Guenther wrote: Mon Nov 02, 2020 9:32 am It's nothing special. I have Msys2 installed and all kind of toolchains with it. A lot of people have this nowaydays.
This was under Win-7 Ultimate.
Thanks Guenther, that is sufficient for little note in README -- I think the setup might be less common than you think, the variety of development tools is incredible nowadays, new tool names jump out practically every time I ask (had not heard of Msys2 before either).
Guenther wrote: Mon Nov 02, 2020 9:32 am BTW I have a question, you have already said it uses a fixed depth (4) currently, but I found only a setting which corresponds to (3) in it.
I changed it to (5) in another compilation for not playing immediately but that resulted in depth (6) playing (that was too slow ofc).
It seems then the default depth setting starts from zero counting?

Code: Select all

globals.c/15: #define MONCHESTER_DEPTH_DEFAULT 3
Your interpretation of depth is correct, counting starts from 0. I guess this is fundamental enough to warrant little comment on these #defines.

I think effective depth 5 (#define MONCHESTER_DEPTH_DEFAULT 4) should still be tractable for middle-games on most relatively modern hardware, as ./monchester --bench 5 shows 1.077 second time (4711 kN/S) for search of initial position at effective depth 5 on i5-5200U 2.2GHz laptop, but ./monchester --bench 6 takes 15.253 seconds (8138 kN/s) at effective depth 6, so that becomes too much for fast time controls for minimax without alpha-beta as it is implemented. Though there is little heuristic time management for decreasing depth when running low on time, so it is not entirely impossible that Monchester might be able to finish some games at effective depth 6 without getting flagged.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
User avatar
Guenther
Posts: 4607
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Monchester

Post by Guenther »

unserializable wrote: Mon Nov 02, 2020 4:13 pm
Guenther wrote: Mon Nov 02, 2020 9:32 am It's nothing special. I have Msys2 installed and all kind of toolchains with it. A lot of people have this nowaydays.
This was under Win-7 Ultimate.
Thanks Guenther, that is sufficient for little note in README -- I think the setup might be less common than you think, the variety of development tools is incredible nowadays, new tool names jump out practically every time I ask (had not heard of Msys2 before either).
Guenther wrote: Mon Nov 02, 2020 9:32 am BTW I have a question, you have already said it uses a fixed depth (4) currently, but I found only a setting which corresponds to (3) in it.
I changed it to (5) in another compilation for not playing immediately but that resulted in depth (6) playing (that was too slow ofc).
It seems then the default depth setting starts from zero counting?

Code: Select all

globals.c/15: #define MONCHESTER_DEPTH_DEFAULT 3
Your interpretation of depth is correct, counting starts from 0. I guess this is fundamental enough to warrant little comment on these #defines.

I think effective depth 5 (#define MONCHESTER_DEPTH_DEFAULT 4) should still be tractable for middle-games on most relatively modern hardware, as ./monchester --bench 5 shows 1.077 second time (4711 kN/S) for search of initial position at effective depth 5 on i5-5200U 2.2GHz laptop, but ./monchester --bench 6 takes 15.253 seconds (8138 kN/s) at effective depth 6, so that becomes too much for fast time controls for minimax without alpha-beta as it is implemented. Though there is little heuristic time management for decreasing depth when running low on time, so it is not entirely impossible that Monchester might be able to finish some games at effective depth 6 without getting flagged.
Thanks Taimo. I did just two games now in CuteChess and also had no problems.
I even tried a default depth 5 version now at 40/180s and it lost only one of them on time (my slow hardware).
But for slower Blitz it will be sufficient. I will upload both WIN compilations soon for testing :)

(Hint: the pgn viewer here has a selection menu above the board, three dots...)

[pgn][Event "Monchester_Test"]
[Site "RWBC-CAPPUCCINO"]
[Date "2020.11.03"]
[Round "1"]
[White "Monchester_099D5-64"]
[Black "TRex_19b"]
[Result "0-1"]
[ECO "A30"]
[GameDuration "00:04:42"]
[GameEndTime "2020-11-03T15:41:17.451 Mitteleuropõische Zeit"]
[GameStartTime "2020-11-03T15:36:35.303 Mitteleuropõische Zeit"]
[Opening "English"]
[PlyCount "52"]
[Termination "time forfeit"]
[TimeControl "40/180"]
[Variation "Symmetrical Variation"]

1. c4 {book} c5 {book} 2. Nf3 {book} b6 {book} 3. Nc3 {book} Nf6 {book}
4. Qc2 {+1.54/5 7.80s} Nc6 {-0.03/5 3.89s} 5. Qf5 {+1.51/5 18.23s}
d5 {+0.09/5 3.76s} 6. Qf4 {-0.60/4 0.56s} e5 {+0.04/6 3.41s}
7. Qh4 {-0.60/4 0.60s} Nd4 {+0.96/6 3.40s} 8. Nxd4 {+11.28/5 31.60s}
cxd4 {-0.83/7 4.38s} 9. Nd1 {-0.65/4 0.46s} dxc4 {+1.09/6 4.53s}
10. b3 {+0.40/5 15.69s} cxb3 {+1.10/6 4.30s} 11. axb3 {+0.40/5 18.46s}
Qd5 {+1.17/5 4.51s} 12. Qg5 {-1.65/4 0.70s} Ne4 {+2.07/6 4.29s}
13. Qh4 {-1.65/4 0.72s} g5 {+2.16/5 4.25s} 14. Qh5 {-0.65/5 31.32s}
Qxb3 {+1.17/5 4.67s} 15. f3 {-10.37/4 0.73s} Nd6 {+1.02/6 4.24s}
16. Nf2 {-2.60/4 0.58s} Be7 {+2.08/6 4.41s} 17. Ne4 {-2.54/4 0.64s}
Nxe4 {+2.16/6 4.35s} 18. fxe4 {-0.54/5 20.12s} Bb7 {+3.01/6 4.88s}
19. Qg4 {-0.54/5 16.35s} Rc8 {+3.01/6 4.63s} 20. Qf5 {-8.54/4 0.56s}
Rc5 {+3.04/6 4.42s} 21. Bb2 {-9.54/4 0.61s} Qxb2 {+5.27/6 4.38s}
22. Rd1 {-10.54/4 0.52s} Qc2 {+6.34/6 4.46s} 23. Ra1 {-11.54/4 0.32s}
Bxe4 {+6.36/6 4.67s} 24. Qg4 {-11.54/4 0.56s} Rc7 {+6.43/6 4.43s}
25. Qg3 {-11.54/4 0.54s} Qc5 {+6.44/6 4.44s} 26. Rd1 {-11.54/4 0.58s}
Qa5 {+7.29/6 4.41s, White loses on time} 0-1

[Event "Monchester_Test"]
[Site "RWBC-CAPPUCCINO"]
[Date "2020.11.03"]
[Round "1"]
[White "TRex_19b"]
[Black "Monchester_099D5-64"]
[Result "1-0"]
[ECO "A30"]
[GameDuration "00:07:35"]
[GameEndTime "2020-11-03T15:48:53.557 Mitteleuropõische Zeit"]
[GameStartTime "2020-11-03T15:41:18.481 Mitteleuropõische Zeit"]
[Opening "English"]
[PlyCount "129"]
[TimeControl "40/180"]
[Variation "Symmetrical Variation"]

1. c4 {book} c5 {book} 2. Nf3 {book} b6 {book} 3. Nc3 {book} Nf6 {book}
4. d4 {+0.11/6 3.44s} cxd4 {+1.31/5 6.17s} 5. Qxd4 {+0.06/6 3.83s}
Nc6 {+1.45/5 9.12s} 6. Qf4 {+0.09/6 3.87s} e5 {+9.28/5 12.52s}
7. Nxe5 {+0.98/6 3.46s} Bb4 {+1.28/5 21.03s} 8. a3 {+1.22/6 4.97s}
Bxc3+ {+11.11/5 22.32s} 9. bxc3 {+1.11/8 4.66s} Qe7 {+2.28/5 13.64s}
10. Nxc6 {+1.11/6 4.34s} dxc6 {+2.28/5 19.60s} 11. f3 {+1.12/6 4.38s}
Nd7 {+0.17/4 0.93s} 12. Rb1 {+1.20/5 4.06s} Nf8 {+0.28/4 0.93s}
13. g3 {+1.23/5 4.07s} c5 {+0.28/4 1.04s} 14. Qg5 {+1.27/5 4.95s}
Qxg5 {+0.28/4 0.86s} 15. Bxg5 {+1.17/7 4.12s} Ne6 {+2.28/5 3.49s}
16. Bd2 {+1.11/6 4.49s} Bb7 {+2.22/5 4.20s} 17. Bg2 {+1.16/6 4.78s}
Nd8 {+0.28/4 0.49s} 18. Kf2 {+1.23/5 4.50s} Ne6 {+2.22/5 6.51s}
19. f4 {+1.21/5 4.47s} Bxg2 {+0.28/4 0.77s} 20. Kxg2 {+1.23/7 4.20s}
f5 {+2.28/5 5.15s} 21. Rhd1 {+1.20/6 4.83s} Rd8 {+9.28/5 3.90s}
22. Rbc1 {+1.17/6 4.09s} g6 {+9.28/5 3.26s} 23. Rb1 {+1.20/7 4.72s}
h6 {+9.28/5 5.12s} 24. Rbc1 {+1.18/6 4.85s} h5 {+9.28/5 3.21s}
25. Be3 {+1.21/7 4.78s} a6 {+0.28/4 0.33s} 26. Rxd8+ {+1.25/7 4.65s}
Kxd8 {+2.28/5 0.49s} 27. Rb1 {+1.24/7 4.49s} Kc7 {+2.28/5 2.03s}
28. Rd1 {+1.20/7 4.95s} a5 {+2.28/5 3.00s} 29. Rd2 {+1.18/6 4.98s}
a4 {+2.28/5 2.23s} 30. Rd3 {+1.20/7 4.76s} Kc6 {+2.28/5 1.89s}
31. Rd5 {+1.18/6 5.09s} Kc7 {+2.28/5 2.17s} 32. Kf1 {+1.18/6 5.81s}
Kc6 {+2.28/5 1.82s} 33. Kf2 {+1.20/7 5.16s} h4 {+2.28/5 1.93s}
34. Kf3 {+1.18/8 5.05s} Nc7 {+1.22/4 0.12s} 35. Rd1 {+1.18/8 5.87s}
hxg3 {+2.28/5 2.15s} 36. Kxg3 {+0.21/8 5.83s} Ne6 {+2.28/5 2.24s}
37. Rd2 {+1.18/6 5.75s} Kc7 {+0.28/4 0.13s} 38. Rd1 {+1.22/7 6.85s}
b5 {+0.28/4 0.19s} 39. cxb5 {+2.20/7 6.79s} c4 {-0.71/4 0.21s}
40. Bd4 {+2.21/6 7.77s} Rg8 {+0.28/4 0.23s} 41. Be5+ {+2.24/6 3.75s}
Kc8 {+0.28/5 0.36s} 42. Rd6 {+3.16/6 3.63s} Re8 {+0.28/5 1.09s}
43. Rc6+ {+3.25/7 3.88s} Kb7 {+0.28/5 0.28s} 44. Rxc4 {+3.26/7 3.70s}
Ra8 {+0.28/5 1.75s} 45. Rc6 {+3.31/7 3.22s} Re8 {-0.71/5 1.60s}
46. Ra6 {+3.98/6 3.40s} Nc5 {+6.28/5 1.60s} 47. Rxg6 {+4.06/8 3.39s}
Ne4+ {-0.71/5 1.84s} 48. Kg2 {+3.34/7 3.15s} Nc5 {-0.71/5 2.46s}
49. Rf6 {+4.97/6 3.53s} Nd7 {-0.77/5 1.60s} 50. Rxf5 {+5.05/7 3.39s}
Kc8 {-1.71/5 1.52s} 51. Kf3 {+5.09/7 3.47s} Kb7 {-1.77/5 0.88s}
52. Rf7 {+5.25/6 3.11s} Kc8 {-1.77/5 1.00s} 53. Bd4 {+5.34/7 3.98s}
Kd8 {-1.77/5 1.70s} 54. c4 {+5.28/6 3.29s} Kc8 {-1.77/5 1.48s}
55. c5 {+5.33/6 4.50s} Rd8 {-1.77/5 1.75s} 56. c6 {+5.32/6 4.24s}
Nf8 {-2.82/5 1.07s} 57. Bb6 {+6.31/7 4.92s} Re8 {-2.82/5 1.09s}
58. f5 {+7.42/7 4.88s} Kb8 {-4.54/5 0.87s} 59. e4 {+7.43/7 4.11s}
Ka8 {-4.54/5 0.78s} 60. Bc5 {+8.38/7 4.21s} Ne6 {-11.54/5 0.86s}
61. fxe6 {+8.47/7 4.12s} Kb8 {-12.48/5 0.42s} 62. Bd6+ {+M7/7 2.58s}
Ka8 {-38.11/5 0.068s} 63. b6 {+M5/5 0.11s} Re7 {-2857.14/4 0.28s}
64. Rf8+ {+M3/3 0.013s} Re8 {-2857.14/4 0.013s}
65. Rxe8# {+M1/1 0.010s, White mates} 1-0[/pgn]
https://rwbc-chess.de

trollwatch:
Talkchess nowadays is a joke - it is full of trolls/idiots/people stuck in the pleistocene > 80% of the posts fall into this category...