fchess v 0.9

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Fguy64
Posts: 814
Joined: Sat May 09, 2009 4:51 pm
Location: Toronto

fchess v 0.9

Post by Fguy64 »

Greetings.

Thanks to all for the suggestions I received in the negamax thread and others, I am pleased to have something to show. The link in my signature has been revamped with intructions, links to engine source code, and other details. (touch wood)

The application is written in Sun java.

The engine implements a negamax algorithm ( I think ) with alpha-beta pruning. I decided to hold off on the quiescence because I couldn't get it to work reliably in many cases, it took forever. There is no hash table yet either. Clearly I have some homework to do. The evaluation routine is strictly based on material.

One note. At each ply level I seed an impossibly low maximum eval for a position, and then call for the possible moves. One pleasing but unexpected side effect is that at ply = 2 & 4 the engine solves mate/stalemate in one and two, and at ply 3 & 5 it avoids mate/stalemate in one and two. This happens because the call to possible moves returns an empty list, thus there are no moves to disturb the initial low max eval.

Anyways, at the website there is a programmer's page with links to complete source code for the engine.

As for performance, well at ply=5 from the starting position the engine takes 17 seconds to return a move on a 1.7 Ghz CPU running Windows XP. So I suppose there is room for improvement there.

As always, comments and suggestions are welcome. I am pretty sure the algorithm is correct as far is it goes, but that is the main thing I want to establish before I move on to quiescence and an improved eval function.