MadChess 3.0 Beta Build 039 (Bitboards)

For the last month or so, in the evenings and on the weekends, I’ve been writing a new version of MadChess. For this 3.0 version, I’m writing code using bitboards instead of the mailbox board representation I used in MadChess 1.x and 2.x. I considered using C++ and even went as far as purchasing Bjarne Stroustrup’s The C++ Programming Language book and reading the first four chapters. But in the end I decided to stick with C#, the programming language with which I’m most familiar, for a few reasons. Microsoft has been adding high-performance features to C# in recent editions,… Continue Reading

MadChess 2.0 Beta Build 001 (Procedural Code)

I’ve been writing a new version of MadChess. For this 2.0 version, I’m writing code using procedural techniques rather than the object-oriented techniques I used in MadChess 1.x. When I say the code is “procedural”, I mean it has two primary traits. The code uses primitive data structures instead of classes. The code emphasizes performance over readability and maintainability. I’m writing the code in C# with a mailbox board representation, similar to MadChess 1.x. The board has an array of Positions. Each Position has an integer array of Squares. Moves are encoded into an unsigned integer. I’m using a copy-make… Continue Reading