Jan 15, 2009

[Other] Some progress

I finally have a version of Mediocre that seems better than v0.334, a few more things to fix and it's ready for release.

The rewritten Board-class is both a blessing and a pain, I have found quite a few bugs due to it, simply because it doesn't accept faulty positions and moves at all. It immediately crashes the program. :)

This is a good thing of course since tricky bugs are much easier to find.

However to my disappointment it seems it actually turns out to be slightly slower than the old Board-class. Not when running the perft-tests, but rather when the engine is actually up and running (searching moves). I'm guessing it is due to the increased number of method calls, especially in the evaluation (things like board.getWBishops()[0].getPosIndex()).

At one point I was thinking about throwing it away, but it is just so much better coded now that I just can't. I will have to try to find some optimizations later on instead.


I'm currently working on adding some endgame knowledge. I was thinking about adding support for tablebases, however I will put that off for some time. Instead I'm adding basic endgame positions (like KPvK etc.) manually. More fun and less work that way. :)

As a measure I'm using the eet.epd endgame test suite. Mediocre v0.334 scored 15/100 at 5 seconds per position. I want the next version to get around 30/100.

No comments: