Wednesday, 18 April 2007

Basic engine...

I wish I were still a student... my time is so limited! Vicki is making good progress under the current time constraints. So what do I have:
  • I have a decent move generator that can generate moves pretty fast using the 12x12 representation technique. I can also generate captures only.
  • Alpha-beta search.
  • Quiescence search, with MVV/LVA move ordering. Currently, I'm not pruning any of the moves and merely orders them by the MVV/LVA scheme.
  • Horrible evaluation function.
  • Separate input thread that takes minimum amount of processor time.
  • A minimal WinBoard interface (but without any time management).
This is a good start. I must say the the quiescence search makes a huge difference to the engine and I do not think an engine can be successful without it. Despite the fact that Vicki is very limited in knowledge, it doesn't play as bad as I thought. I estimate the ELO to be around 800. which is a bit better than a human that has just learned how to play chess!

Before releasing the first version of Vicki (version 0.1 beta), I need to implement the following first:
  • Do away with MVV/LVA and implement SEE. I have an idea which I would like to try out before reading to much on how other people do it. I basically "count" attackers and defenders on a square AS PART of the move generation. Once I have the idea well defined and tried on paper, I may divulge some information on it... :)
  • Implement some move ordering in the alpha-beta search using table lookups.
  • Implement the standard iterative deepening and re-use its results in the move ordering.
  • Add some time management!
But now I'm so-o late for work :)

No comments: