This project is read-only.

Work In Progress

Sep 25, 2008 at 9:22 AM
The present version of chengine contains some bug, even after a big refactoring. There is some issue in term of speed as well, so I decided to move some critical stuff from C# to managed C++, expecially the move generator and the board management. The reason of moving to managed C++ will allow to code using the old fashion "macro". This should produce more readable code having more control on what is inlining. In addition using unsafe arrays will speed up as well the entire process. I will post during the developement the Perft test results so it will be possible compare how much improvement we will obtain. By the way, the current running C# leave some big space to optimization: I used a move representation with a reference type ( that slow down the process by a factor of about ten ) and sometimes I used property accessors even inside the class instead of using the underlying private variable. This wrong approach sensibly reduce the speed. In any case I will just jump directly to Managed C++, but I would like to keep the code as modular as possible, and I will keep C# for all the main infrastructure of the engine. The objective is to have an engine competitive, but really suitable for experimental works ( ie, using a new move generator, or some new heuristics ) just by changing some wiring in the main code.