I have written a chess program using bit boards in C# and almost done with move generation(Castling still incomplete).
I have also written a PERFT function which gives me the following statistics for the starting position on the chess board:
- 20 Nodes ---> 10 ms ---> 2 kN/s
- 400 Nodes --->11 ms ---> 36 kN/s
- 8902 Nodes ---> 18 ms ---> 494.56 kN/s
- 197281 Nodes --->477 ms. ---> 413.59 kN/s
- 4865609 Nodes ---> 4372 ms ---> 1112.9 kN/s
- 119060324 Nodes ---> 307920 ---> 386.56 kN/s
This is my very first bit-boards chess engine so don't know much about the speed, however when compared to my previous 0x88 chess stats this is definitely a winner.
When I compared these stats with Sharper (amazing chess program), I realized that it is much more faster than this, It computed Perft(6) in 132 ms without hash tables.
So I would request some one with experience in chess programming or in c# to review my code and let me know where I am going wrong or what can be done to optimize it.
I shall post my code if any one is ready to review the same.
Please note, that there are no visible bugs.
Also if any one is aware, kindly post some kind of profiling tool which will help me to understand the coding efficiency better.
I am using Visual Studio 2010 as my IDE and C# as the language.