New chess engine '^2-chess' - release 1.1.0

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

Moderators: hgm, Rebel, chrisw

User avatar
tsoj
Posts: 35
Joined: Thu Oct 19, 2017 4:59 pm
Location: Germany, Berlin
Full name: Jost Triller

New chess engine '^2-chess' - release 1.1.0

Post by tsoj »

Hi,
i programmed a new chess engine in C++:
https://gitlab.com/tsoj/squared-chess/tags/1.1.0
It has a lichess elo of around 2000.
The engine will be sometimes online here: https://lichess.org/@/squared-chess. Accepts pretty much any standard challenge except correspondence chess.
Image
Here is a game between ^2-chess and Deepov:
[pgn][Event "Computer Schach Partie"] [Site "https://lichess.org/2sV09qus"] [Date "2018.09.20"] [Round "?"] [White "Deepov"] [Black "^2-chess"] [Result "0-1"] [WhiteElo "?"] [BlackElo "?"] [Variant "Standard"] [Variation "Colle-System: 3...e6"] [TimeControl "40/300:40/300:40/300"] [ECO "D05"] [Opening "Colle System"] [Termination "Normal"] [Annotator "lichess.org"] 1. d4 { [%eval 0.08] } 1... d5 { [%eval 0.07] } 2. e3 { [%eval 0.0] } 2... e6 { [%eval 0.12] } 3. Nf3 { [%eval 0.02] } 3... Nf6 { [%eval 0.12] } { D05 Colle System } 4. Bd2 { [%eval -0.19] } 4... c5 { [%eval -0.01] } 5. Bb5+?! { (-0.01 → -0.73) Inaccuracy. Best move was c4. } { [%eval -0.73] } (5. c4 Nc6 6. Bc3 cxd4 7. Nxd4 Be7 8. Be2 dxc4 9. Nd2 Bd7) 5... Bd7 { [%eval -0.27] } 6. a4 { [%eval -0.73] } 6... Qb6?! { (-0.73 → -0.16) Inaccuracy. Best move was a6. } { [%eval -0.16] } (6... a6 7. Be2 cxd4 8. exd4 Bd6 9. c4 Nc6 10. c5 Bc7 11. O-O O-O 12. Re1 Ne4 13. Nc3) 7. Bxd7+?! { (-0.16 → -0.79) Inaccuracy. Best move was c4. } { [%eval -0.79] } (7. c4 cxd4 8. exd4 dxc4 9. Nc3 Bxb5 10. axb5 Bd6 11. Qa4 O-O 12. Qxc4 Nbd7 13. O-O Rfc8) 7... Nbxd7 { [%eval -0.54] } 8. O-O?! { (-0.54 → -1.22) Inaccuracy. Best move was a5. } { [%eval -1.22] } (8. a5 Qc7 9. O-O Bd6 10. a6 Rb8 11. Qe2 bxa6 12. Nc3 Ne4 13. Rxa6 Nxd2 14. Qxd2 Rxb2) 8... Qxb2 { [%eval -0.91] } 9. Nc3 { [%eval -1.39] } 9... Qb6 { [%eval -1.09] } 10. Rb1 { [%eval -1.39] } 10... Qc6 { [%eval -1.38] } 11. Ne5 { [%eval -1.52] } 11... Nxe5 { [%eval -1.32] } 12. dxe5 { [%eval -1.48] } 12... Nd7 { [%eval -1.39] } 13. f4 { [%eval -1.49] } 13... Be7 { [%eval -1.47] } 14. Qe2 { [%eval -1.55] } 14... c4?! { (-1.55 → -0.95) Inaccuracy. Best move was a6. } { [%eval -0.95] } (14... a6 15. a5 O-O 16. Nd1 c4 17. Bc3 Rab8 18. Bd4 Bc5 19. Qd2 b5 20. axb6 Bxb6 21. Bxb6) 15. Nb5 { [%eval -1.35] } 15... Nc5?! { (-1.35 → -0.55) Inaccuracy. Best move was O-O. } { [%eval -0.55] } (15... O-O) 16. Bb4?! { (-0.55 → -1.40) Inaccuracy. Best move was f5. } { [%eval -1.4] } (16. f5 exf5 17. Nd4 Qc7 18. Nxf5 Qxe5 19. Bb4 b6 20. Qg4 g6 21. Nxe7 Qxe7 22. Qd4 O-O) 16... O-O? { (-1.40 → 0.00) Mistake. Best move was g6. } { [%eval 0.0] } (16... g6 17. Bxc5 Bxc5 18. Nd4 Qd7 19. Qf3 b6 20. Ra1 O-O 21. c3 Rfc8 22. Qf2 Rab8 23. Qg3) 17. Bxc5? { (0.00 → -1.74) Mistake. Best move was f5. } { [%eval -1.74] } (17. f5 exf5 18. Nd4 Qc7 19. Nxf5 Rae8 20. Qg4 g6 21. Nh6+ Kg7 22. Nf5+ Kg8) 17... Bxc5 { [%eval -1.42] } 18. Nd4?! { (-1.42 → -2.17) Inaccuracy. Best move was c3. } { [%eval -2.17] } (18. c3 a6) 18... Qxa4 { [%eval -1.98] } 19. Rxb7 { [%eval -2.12] } 19... Bb6? { (-2.12 → -0.99) Mistake. Best move was Qe8. } { [%eval -0.99] } (19... Qe8 20. Qf2) 20. Qd2? { (-0.99 → -2.16) Mistake. Best move was f5. } { [%eval -2.16] } (20. f5 Bxd4) 20... Rad8?! { (-2.16 → -1.59) Inaccuracy. Best move was Qe8. } { [%eval -1.59] } (20... Qe8 21. Qb4 Qc8 22. Qe7 Bc5 23. Qc7 a5 24. Qxc8 Rfxc8 25. f5 exf5 26. Rxf5 Rf8 27. Rb5) 21. Qc3?! { (-1.59 → -2.40) Inaccuracy. Best move was f5. } { [%eval -2.4] } (21. f5 Rd7 22. Rxd7 Qxd7 23. Qe1 Bxd4 24. exd4 exf5 25. Qb4 Qe6 26. Qa5 a6 27. Rb1 f4) 21... Qa6 { [%eval -2.13] } 22. Re7 { [%eval -2.43] } 22... Bc5 { [%eval -2.31] } 23. Ra1 { [%eval -2.34] } 23... Qc8 { [%eval -2.11] } 24. Raxa7?! { (-2.11 → -2.82) Inaccuracy. Best move was Rexa7. } { [%eval -2.82] } (24. Rexa7 Bxa7 25. Rxa7 Rd7 26. Ra5 Rb7 27. Kf2 Rb8 28. g3 h6 29. Kg2 Qb7 30. Qe1 Rfc8) 24... Bxe7 { [%eval -2.8] } 25. Rxe7 { [%eval -2.8] } 25... Qa6 { [%eval -2.66] } 26. Rc7 { [%eval -2.84] } 26... Qb6 { [%eval -2.78] } 27. Rc6 { [%eval -2.75] } 27... Qb1+ { [%eval -2.67] } 28. Kf2 { [%eval -2.77] } 28... Ra8 { [%eval -2.61] } 29. e4? { (-2.61 → -3.65) Mistake. Best move was Qe1. } { [%eval -3.65] } (29. Qe1 Qb7 30. h3 Qb2 31. Rc5 Rfb8 32. Ra5 Rxa5 33. Qxa5 Qc1 34. Qe1 Qxe1+ 35. Kxe1 Ra8) 29... dxe4? { (-3.65 → -2.47) Mistake. Best move was Ra1. } { [%eval -2.47] } (29... Ra1) 30. Rxc4? { (-2.47 → -3.73) Mistake. Best move was Qe1. } { [%eval -3.73] } (30. Qe1 Qxe1+ 31. Kxe1 Rfc8 32. Rxc8+ Rxc8 33. Ke2 Kf8 34. Ke3 Ra8 35. Kxe4 Ra1 36. Ke3 Ke7) 30... Ra1 { [%eval -3.56] } 31. Rc8 { [%eval -3.7] } 31... Qg1+ { [%eval -3.47] } 32. Kg3 { [%eval -3.61] } 32... Ra8 { [%eval -2.77] } 33. Nc6?? { (-2.77 → -16.36) Blunder. Best move was Rxf8+. } { [%eval -16.36] } (33. Rxf8+) 33... Raxc8 { [%eval -16.18] } 34. Ne7+ { [%eval -16.17] } 34... Kh8 { [%eval -13.96] } 35. Nxc8 { [%eval -16.07] } 35... e3 { [%eval -15.69] } 36. Qc5 { [%eval -16.07] } 36... Rg8 { [%eval -14.6] } 37. Nd6 { [%eval -15.7] } 37... Qf2+ { [%eval -13.38] } 38. Kh3 { [%eval -12.82] } 38... Qxf4 { [%eval -11.82] } 39. Qd4 { [%eval -16.67] } 39... g5 { [%eval -16.59] } 40. Qxf4 { [%eval -16.59] } 40... gxf4 { [%eval -15.96] } 41. Nxf7+ { [%eval -16.31] } 41... Kg7 { [%eval -16.02] } 42. Ng5 { [%eval -15.64] } 42... e2 { [%eval -15.32] } 43. Nf3 { [%eval -14.68] } 43... h5 { [%eval -12.14] } 44. Kh4?! { (-12.14 → Mate in 20) Checkmate is now unavoidable. Best move was c3. } { [%eval #-20] } (44. c3 Rc8) 44... Kh6 { [%eval #-20] } 45. Kh3 { [%eval #-16] } 45... Ra8 { [%eval #-15] } 46. c3 { [%eval #-16] } 46... Ra1 { [%eval #-19] } 47. g4 { [%eval #-10] } 47... Rf1 { [%eval #-9] } 48. g5+ { [%eval #-9] } 48... Kg6 { [%eval #-8] } 49. Kg2 { [%eval #-8] } 49... Rxf3 { [%eval #-7] } 50. Kxf3 { [%eval #-7] } 50... e1=Q { [%eval #-6] } 51. Kxf4 { [%eval #-6] } 51... Qxc3 { [%eval #-5] } 52. Ke4 { [%eval #-5] } 52... Qc2+?! { (Mate in 5 → Mate in 7) Not the best checkmate sequence. Best move was h4. } { [%eval #-7] } (52... h4 53. Kf4 Qd3 54. Kg4 Qe4+ 55. Kh3 Kh5 56. g6 Qf3#) 53. Ke3 { [%eval #-6] } 53... Qxh2 { [%eval #-7] } 54. Kd4 { [%eval #-7] } 54... Qf4+ { [%eval #-7] } 55. Kc5 { [%eval #-7] } 55... h4 { [%eval #-6] } 56. Kd6 { [%eval #-6] } 56... Qd4+ { [%eval #-5] } 57. Kxe6 { [%eval #-5] } 57... h3 { [%eval #-4] } 58. Ke7 { [%eval #-4] } 58... Qxe5+?! { (Mate in 4 → Mate in 4) Not the best checkmate sequence. Best move was h2. } { [%eval #-4] } (58... h2 59. Ke6 h1=Q 60. Ke7 Qb7+ 61. Ke8 Qf7#) 59. Kd7 { [%eval #-4] } 59... h2 { [%eval #-3] } 60. Kc8 { [%eval #-3] } 60... h1=Q { [%eval #-2] } 61. Kd7 { [%eval #-2] } 61... Qh7+ { [%eval #-1] } 62. Kc6 { [%eval #-1] } 62... Qhc7# { Black wins by checkmate. } 0-1 [/pgn]
User avatar
Dariusz
Posts: 364
Joined: Sat Jun 13, 2015 10:08 am
Location: Poland
Full name: Dariusz Domagała

Re: New chess engine '^2-chess' - release 1.1.0

Post by Dariusz »

Good news :D

Could you public source code, please.
Regards, Darius
https://chessengeria.eu
User avatar
Guenther
Posts: 4606
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New chess engine '^2-chess' - release 1.1.0

Post by Guenther »

Dariusz wrote: Thu Sep 20, 2018 7:56 am Good news :D

Could you public source code, please.
The source is there under
https://gitlab.com/tsoj/squared-chess/tree/master
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New chess engine '^2-chess' - release 1.1.0

Post by Gabor Szots »

I'm not sure our scripts could handle that ^.
Gabor Szots
CCRL testing group
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: New chess engine '^2-chess' - release 1.1.0

Post by tpoppins »

Indeed, they have enough trouble parsing apostrophes. ;)

Would you mind us calling it "squared-chess 1.1.0 64-bit", Jost?
Tirsa Poppins
CCRL
User avatar
tsoj
Posts: 35
Joined: Thu Oct 19, 2017 4:59 pm
Location: Germany, Berlin
Full name: Jost Triller

Re: New chess engine '^2-chess' - release 1.1.0

Post by tsoj »

No problem, I thought that would kinda nice with the ^ but Gitlab had also problems with that.
I made a new commit, now the binary that gets build is by default 'squared-chess' (the binaries of 1.1.0 are already called like this).
I think the only part of the engine that has the ^ in it is the reply to the 'uci' command. Is that a problem? If so, I could add a version 1.1.1 with that fixed.
User avatar
tsoj
Posts: 35
Joined: Thu Oct 19, 2017 4:59 pm
Location: Germany, Berlin
Full name: Jost Triller

Re: New chess engine '^2-chess' - release 1.1.0

Post by tsoj »

Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New chess engine '^2-chess' - release 1.1.0

Post by Gabor Szots »

tsoj wrote: Tue Sep 25, 2018 12:27 am 1.2.0
https://gitlab.com/tsoj/squared-chess/tags/1.2.0
I hope this gets rid of the time forfeits as well. I am currently getting every 7th game forfeited on time with version 1.1.0 under Arena 3.5.1.

BTW, I see that the default hash size is 140 MB. If I set 256, will it be rounded down (or up?).
Gabor Szots
CCRL testing group
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: New chess engine '^2-chess' - release 1.1.0

Post by Gabor Szots »

Just occurred to me that I don't even know what name to include with the engine should we test it for our list. So, just for the sake of my report to my bosses, would you tell me who you are?
Gabor Szots
CCRL testing group
User avatar
Guenther
Posts: 4606
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: New chess engine '^2-chess' - release 1.1.0

Post by Guenther »

Gabor Szots wrote: Tue Sep 25, 2018 9:13 am Just occurred to me that I don't even know what name to include with the engine should we test it for our list. So, just for the sake of my report to my bosses, would you tell me who you are?
Just read the chronology ;-)
A hint: He already authored Hactar

Edit:
Actually this was the reason why I built it (long ago) to have all data in a database/table overview,
strange that even experts don't use it?
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy