I think we’re ready to start putting some chess into the Ircos project . I have a plan…
I’m going to try to make this chess engine project an exercise of optimisation. I’m going to try not to rush into getting a fully working chess engine as soon as possible and instead I’m going to concentrate on each stage trying to make it as fast as possible. With that said, I’m going to start with the rules of chess and the chess board implementation.
As I’ve never written a chess engine before, I can assume that I’m going to make design mistakes . Therefore I’m going to write a reference chess board implementation first of all which will serve a few purposes:
- I can make all the mistakes in this implementation and learn how and how not to write a board implementation
- I can throw-away the code at the end and use my newly acquired knowledge to write a better, more efficient version
- I can use the reference implementation to verify the validity of any subsequent (likely more complicated) board implementation
- The reference implementation can be used as a benchmark to show how well the optimisation is progressing
So, for the reference implementation I want to keep it as simple as possible so it can be developed quickly and will minimise the chance of bugs creeping in.
In the next instalment we will take a look at this reference implementation.