Closed tissatussa closed 1 month ago
here's my play, i won with the Black pieces. it was a 15 minute game, in the end i succeeded to calculate deeper then 9 ply or so : the engine didn't see i was tempi ahead to promote one of my pawns :
[ animation created by Apronus.com ]
[Event "human vs engine"]
[Site "Holland @ https://lichess.org/UEbK2Aom "]
[Date "2024.08.10"]
[Round "1"]
[White "DeepBlunder v1.1.6"]
[Black "Roelof Berkepeis"]
[Result "0-1"]
[ECO "B00"]
[GameDuration "00:40:20"]
[Opening "King's pawn Opening"]
[PlyCount "128"]
[TimeControl "900+3"]
1. e4 {+0.25/9 33s} d6 {235s} 2. Nc3 {+0.40/9 32s} Nf6 {100s}
3. d4 {+0.25/8 31s} a6 {23s} 4. Nf3 {+0.60/8 30s} Bg4 {18s} 5. Bc4 {+0.55/8 29s}
b5 {31s} 6. Bd3 {+0.60/9 28s} Nc6 {12s} 7. d5 {+0.60/9 28s} Nd4 {15s}
8. Be3 {+0.75/9 27s} c5 {74s} 9. dxc6 {+0.70/9 26s} Nxc6 {2.5s}
10. O-O {+0.60/8 25s} Ne5 {18s} 11. Be2 {+0.75/9 24s} Bxf3 {54s}
12. gxf3 {+0.70/9 24s} Qc8 {32s} 13. f4 {+0.70/8 23s} Nc4 {21s}
14. Bxc4 {+0.70/9 22s} Qxc4 {6.5s} 15. e5 {+0.60/8 22s} dxe5 {50s}
16. fxe5 {+0.45/9 21s} Rd8 {2.1s} 17. Qe2 {+0.55/9 20s} Qg4+ {187s}
18. Kh1 {+0.50/10 20s} Qxe2 {7.8s} 19. Nxe2 {+0.40/10 19s} Ng4 {2.3s}
20. Bd4 {+0.60/9 19s} h5 {27s} 21. f3 {+0.85/8 18s} Nh6 {14s}
22. Rad1 {+0.80/8 18s} e6 {11s} 23. Kg1 {+0.55/8 17s} Nf5 {10.0s}
24. Bf2 {+0.45/10 17s} Be7 {83s} 25. Rxd8+ {+0.40/10 16s} Kxd8 {3.5s}
26. Nd4 {+0.50/9 16s} Nxd4 {33s} 27. Bxd4 {+0.40/10 15s} h4 {6.3s}
28. Rd1 {+0.35/9 15s} Kc8 {13s} 29. Rd3 {+0.35/9 15s} h3 {12s}
30. Rc3+ {+0.30/9 14s} Kb7 {1.8s} 31. f4 {+0.35/10 14s} Rd8 {49s}
32. Rd3 {+0.20/10 14s} Rxd4 {36s} 33. Rxd4 {+0.25/11 13s} Bc5 {1.7s}
34. c3 {+0.30/12 13s} b4 {2.3s} 35. Kf2 {+0.20/12 12s} bxc3 {3.6s}
36. bxc3 {+0.20/12 12s} Bxd4+ {5.0s} 37. cxd4 {+0.10/14 12s} Kc6 {35s}
38. Kg3 {+0.05/14 12s} Kd5 {1.7s} 39. Kxh3 {-0.65/14 11s} Kxd4 {13s}
40. Kg2 {-0.60/13 11s} Kc3 {1.7s} 41. Kg1 {-0.75/13 11s} Kb2 {1.4s}
42. a4 {-1.00/14 10s} a5 {1.3s} 43. Kf2 {-1.25/14 10s} Kb3 {1.1s}
44. Ke3 {-1.25/13 10.0s} Kxa4 {1.3s} 45. f5 {-2.00/13 9.8s} Kb3 {5.7s}
46. fxe6 {-2.50/13 9.5s} fxe6 {3.7s} 47. Kd2 {-7.75/14 9.3s} Kb2 {7.3s}
48. Kd3 {-8.80/14 9.1s} a4 {2.3s} 49. Kc4 {-8.80/14 8.9s} a3 {1.5s}
50. Kc5 {-8.80/13 8.7s} a2 {1.6s} 51. Kd6 {-8.80/12 8.5s} a1=Q {2.7s}
52. Kxe6 {-8.80/10 8.3s} Kc3 {5.2s} 53. Kd6 {-9.00/10 8.2s} Qa6+ {3.9s}
54. Ke7 {-9.10/10 8.0s} Kd4 {5.3s} 55. e6 {-9.10/10 7.8s} Ke5 {1.9s}
56. Kf7 {-9.10/10 7.7s} g5 {2.3s} 57. Kg6 {-10.30/10 7.5s} g4 {62s}
58. Kf7 {-10.70/10 7.4s} Qxe6+ {6.8s} 59. Kg7 {-M8/10 7.2s} Qe7+ {11s}
60. Kg6 {-M8/10 7.1s} Qd7 {27s} 61. h3 {-M8/10 6.9s} gxh3 {5.7s}
62. Kg5 {-M6/10 6.8s} Qg7+ {8.6s} 63. Kh4 {-M4/10 6.7s} Kf4 {4.7s}
64. Kxh3 {-M2/10 6.5s} Qg3# {1.8s, Black mates} 0-1
the LiChess graph indeed shows 1 blunder .. so, i think your logo just landed here :
Wow, these are great suggestions! I will definitely be working on implementing these over the next few days.
If you want to design a logo for the engine, go for it! I'd be interested to see what you come up with.
Interesting game! I noticed that that blunder was the king heading back to g1 instead of toward the center. Currently, g1 is one of the only squares in the piece-square table where the king gets a bonus, so it is encouraged to castle. I was able to beat my engine once (out of many tries) because it missed an attack sequence that was over 10 ply deep (https://lichess.org/zH5hNpEu). That's a funny logo, I think I might use it!
..If you want to design a logo for the engine, go for it! I'd be interested to see what you come up with..
it just did !
btw. did you know a Makefile
can be created with extended features like questions ? thus let the user select custom options, detect CPU features and set options accordingly, etc. .. cmake
fully supports many commands and constructs for this but i guess make
offers same .. recently ChatGPT told me a lot about this, see this session - it's a long read but it has interesting topics which may inspire.
btw. ChatGPT helps me a lot while coding .. but only with good wording : asking clear questions and often ask for confirmation, because ChatGPT is not always right ..
the ChatGPT session about cmake
etc is not the one i wanted to mention .. also see this session about make
features like questions and little menus while Making .. this script language seems to have many commands and we can do a lot with it .. on the other side, best is to keep things simple .. but i might try to create a nifty Makefile with menus, just for fun and to learn.
..Currently, g1 is one of the only squares in the piece-square table where the king gets a bonus, so it is encouraged to castle..
that's a simple smart rule, but only when the King is still able to castle .. you can detect that and use another PST ?! And did you ever consider the amount of pieces on the board regarding tapered
PSTs, MG and EG ? (common methods) Even value the complexity of the position (i once saw a formula / method for that) and act upon it by PST type. Such value can also set a type of time management : how critical (complex) is the position, is it worth spending longer time ? Just to avoid blunders in 'critical' positions, e.g. with many possible captures .. these are just some ideas which intrige me and they may inspire.
i see you just released v1.1.7 .. congrats ! i compiled the source code without any warnings or errors and it plays well in CuteChess !
i also see you added a decent README, supplied assets and a history text .. well done !
[ i close this Issue ]
Yes, I have implemented most of your suggestions. Let me know if you have any more! Next, I will work on improving the evaluation function and the engine's time management (I noticed it still flags some games on lichess).
..Let me know if you have any more!
one little thing : in the README you use triple backtick chars around single words or phrases but you don't have to : just use single backticks there .. triples are used to put around a set of lines, like you did with the 'bash' commands. Btw. i'd use "\<u>uci\</u>" around those single words or phrases, and maybe ALSO use single backticks there, it makes the text a bit more clear.
Thanks, I did not know about the single vs triple backticks
[ consider this Issue a follow-up of my #1 ]
thanks for the Makefile ! i think this method is awesome, i like Makefiles .. i'm not much into C++ but often i can repair code, if needed .. i also often adjust a Makefile to add optimization flags, set my compiler version etc. although i have no clue how to compare different binaries .. in fact i have no real complaints about your Makefile, and i had no warnings or errors, but here are some remarks :
make help
g++
intog++-13
, because the default version is 11 on my OS .. then i set-std=c++20
, not your-std=c++17
.. i think this will create a somewhat better / faster binary, but i'm not sure, it only seems logical .. with your code i didn't NEED g++ version 13, but some code packages require it when modern C-constructs are used. Thatg++
code part appears a few times in your Makefile; i found https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html : it shows the variableCC
can be used to define the compiler and its version, in that case i'd only change 1 line.-mavx2
and-mbmi2
because i read these can set the CPU using faster functions (or so) on modern CPU - if they're not needed it won't matter.clang
also be used ? Which (minimal) version ?other remarks :
uci
commands to play in terminal .. these are all basic infos, nice for the user : it shows completeness and brings faith in the project.tags
to this GitHub project likechess
,C++
,uci
, etc. - it helps listing your project when searching for such program.Btw. your v1.1.6 is considerably faster then v1.0.0 ! It reaches depth 9 easily, not only 4 or 5 .. another reason to compile a fastest binary, i guess :-)
i'm now playing my first game with your engine .. i'll post the result here !
[ i'm on Xubuntu 22.04 ]