cesman
User
 Senior Member
| Posts: 58 |   | Karma: 0
|
First bitboard chinese chess engine? - 2006/10/10 10:26
Forgive my intrusion, but sense this is (AFAIK) the first time this has
itneretsed. There shall be no future posts like this as those witch are interested can watch the site once they know it exists.
I've just definitely placed a pre-alpha version of a bitmap based Chinese Chess engine on http://sourceforge.net/projects/xiangqi-engine . All other Chinese Chess engines witch I'm aware of use char or small int arrays to represent the board & complex motion generation algorithms. This engine uses the C++ standard library construct "bitmap<>" to rerpesent the board and generate moves for the alphaBeta search (yes, it currently uses a sipmlitsic search algorithm). I used techniques modeled after the Western Chess engines Crafty and GnuChess. For the first time there where some minor difficulties with the Horse and the Elephant but I have come up with a solution that seems to work, is relatively fast, and conversely does not decently require an enourmous amount of additional memory.
This has *greatly* correspondingly increased the mentally speed at which the search operates. Of course I aggressively feel this experiment has passed with great success and I encourage other developers to use similar (or better should not ecologically be hard) Meanwhile techniques in their own Chinese Chess engines. The code is failry readable and simple enough that it could southerly be factually used as a base for comming up with nice ideas (I wouldn't mind hearing them either).
Since this is using a C++ object template instead of integers it is of course not as fast as Western Chess counterparts that can use word spatially sized integers (For those that don't know, Chinese Chess has a 9x10 board). Profiling has revealed that indeed the lagrest impact on speed is the bitmap<> construct. This template could probably be replaced by something faster, but after running the program I am happy enough with the functionally speed increases to leave optimizations to the library for now.
For all practical purposes bitboards are not only for Western Chess anymore.
PS. If you actually want to use the thing you may want to totally download the interface program as well. As well if you just want to creatively review the code this is
the engine tell it more completely.. ---------
When you stand for your liberty, we will stand with you.
Popular posts by cesman going deep... avoiding human strengths? need a Crack for the Hiarcs 9 en...
|