It is written with a very clean and straightforward C code. The entire search code has only 154 lines of code. Although the code base of Sungorus is relatively small, it has a lot of important features such as a good move ordering function, hash tables, null move pruning (the version 1.2 had also LMR, but it seems the author removed it for some reason), fast move generation, etc
Currently the engine is #142 on CCRL with 2350 ELO.
I made a C++ version of Sungorus that has no global variables.
Since the license is not clear, I won't post it on my site, but I did send a copy to the author.
It is written with a very clean and straightforward C code. The entire search code has only 154 lines of code. Although the code base of Sungorus is relatively small, it has a lot of important features such as a good move ordering function, hash tables, null move pruning (the version 1.2 had also LMR, but it seems the author removed it for some reason), fast move generation, etc
Currently the engine is #142 on CCRL with 2350 ELO.
I made a C++ version of Sungorus that has no global variables.
Since the license is not clear, I won't post it on my site, but I did send a copy to the author.
The nice thing about a C++ conversion is that all data objects are now class members so it should be much easier to make an SMP version.
Thanks Carlos and Dann. I didn't think anyone would actually look at the source . Dann, thanks a lot for your C++ version, I liked it very much. You are free, of course, to post it on your site.
It is written with a very clean and straightforward C code. The entire search code has only 154 lines of code. Although the code base of Sungorus is relatively small, it has a lot of important features such as a good move ordering function, hash tables, null move pruning (the version 1.2 had also LMR, but it seems the author removed it for some reason), fast move generation, etc
Currently the engine is #142 on CCRL with 2350 ELO.
I made a C++ version of Sungorus that has no global variables.
Since the license is not clear, I won't post it on my site, but I did send a copy to the author.
The nice thing about a C++ conversion is that all data objects are now class members so it should be much easier to make an SMP version.
Thanks Carlos and Dann. I didn't think anyone would actually look at the source . Dann, thanks a lot for your C++ version, I liked it very much. You are free, of course, to post it on your site.
ok, had a spare couple of minutes for programming (and couldn't touch Glass because of heavy testing it is undergoing right now), so here comes a little addition to Dann's C++ code. now the little thing uses principal variation search.
Dann Corbit wrote:
I made a C++ version of Sungorus that has no global variables.
Since the license is not clear, I won't post it on my site, but I did send a copy to the author.
The nice thing about a C++ conversion is that all data objects are now class members so it should be much easier to make an SMP version.
Good stuff Dann! I just downloaded it for using in my personal tests. The thing I most like in it is having a very good playing strength without sacrifice the readability and simplicity of the code.
When I was first trying to learn chess programming, I took a look at Arasan's source code and thought: "My god, is it how a chess program must looks like?". Of course it is a good chess program, but the code is too complex for my taste. But then I found good stuffs like Sungorus, Scorpio, Glaurung, among others.
PK wrote:ok, had a spare couple of minutes for programming (and couldn't touch Glass because of heavy testing it is undergoing right now), so here comes a little addition to Dann's C++ code. now the little thing uses principal variation search.
PK wrote:ok, had a spare couple of minutes for programming (and couldn't touch Glass because of heavy testing it is undergoing right now), so here comes a little addition to Dann's C++ code. now the little thing uses principal variation search.
PK wrote:ok, had a spare couple of minutes for programming (and couldn't touch Glass because of heavy testing it is undergoing right now), so here comes a little addition to Dann's C++ code. now the little thing uses principal variation search.
and yes, it's a pleasure to modify this code, I wish I could write in such a simple manner.
Thanks Pawel. I've been using PVS for some time in the development version with some positive effect, although I implemented it a bit differently. I will try your way.
Dann Corbit wrote:
I made a C++ version of Sungorus that has no global variables.
Since the license is not clear, I won't post it on my site, but I did send a copy to the author.
The nice thing about a C++ conversion is that all data objects are now class members so it should be much easier to make an SMP version.
Good stuff Dann! I just downloaded it for using in my personal tests. The thing I most like in it is having a very good playing strength without sacrifice the readability and simplicity of the code.
When I was first trying to learn chess programming, I took a look at Arasan's source code and thought: "My god, is it how a chess program must looks like?". Of course it is a good chess program, but the code is too complex for my taste. But then I found good stuffs like Sungorus, Scorpio, Glaurung, among others.
You can take a look at Olithink, it is smaller and stronger than my program, although some variable names are a bit cryptic.