Introduction
I spent some time developing a chess engine mainly because I'm curious how it works and want to learn about algorithms to analyze such problems and also because I simply wanted to see whether I could do it. The project is merely 3 weeks old, but now I have just reached a state where that thing actually works - with Chess Engine Communication Protocol Version 2 support including edit mode and move now! feature.
Features
What I implemented so far:
* A brute force search tree
* Cut off by alpha beta pruning
* Another speedup by using nullmove heuristic
* A mix of field array and figure list for fast movement calculation
* A dumb greeting message that is composed of various parts ! (killer feature
Which gives usable results, but painfully missing is
* Time management
Playing style
Currently, the engine is tweaked to play *very* fast which obviously lowers strengh A LOT but play against it with 1 minute for 25-40 moves (depending on your hardware) and you will probably find it challenging.
I want to monitor the time and adjust calculation depth according to the remaining time, but it's just not done yet.
ToDo List
Writing a chess engine is pretty cool, especially when all those algorithms suddenly come to life. I still have a couple of things to tweak (mainly hashing boards for another speed up and time management), also undo isn't working yet.
Download
Give me some feedback how you find the Ildtiadar Chess Machine (don't forget it's really just an amateur's engine written in 3 weeks with also other things in mind)
