Testing and debugging chess engines
Posted: 03 Dec 2006, 14:54
Hello,
I'm new to chess programming, and I'm working on my own chess engine,
I'm using bitboards, and already have alpha-beta with transposition table (zobrist hash key using mersenne twister),
move ordering (hash move, killer move, MVV/VLA), opening book,
UCI + Winboard engine (but have my own interface).
I'm looking for methods, advices, to test if my engine works and help to find bugs.
I found the perft function, and the results on Reinhard Scharnagl website very usefull,
(I have the same result now, except for mate count on depth 7 for the default position)
but I don't know how to test if there are bugs in alpha-beta, move ordering, or transposition table...
my engine is very slow compared to other engines, I have 350 Kn/s where other engines show at least 1000 Kn/s
and I don't see a big change using transposition table and move ordering.
I compared the number of nodes searched at each depth (output by UCI engines) and it seems I'm searching a lot more nodes than other engines.
Thanks.
I'm new to chess programming, and I'm working on my own chess engine,
I'm using bitboards, and already have alpha-beta with transposition table (zobrist hash key using mersenne twister),
move ordering (hash move, killer move, MVV/VLA), opening book,
UCI + Winboard engine (but have my own interface).
I'm looking for methods, advices, to test if my engine works and help to find bugs.
I found the perft function, and the results on Reinhard Scharnagl website very usefull,
(I have the same result now, except for mate count on depth 7 for the default position)
but I don't know how to test if there are bugs in alpha-beta, move ordering, or transposition table...
my engine is very slow compared to other engines, I have 350 Kn/s where other engines show at least 1000 Kn/s
and I don't see a big change using transposition table and move ordering.
I compared the number of nodes searched at each depth (output by UCI engines) and it seems I'm searching a lot more nodes than other engines.
Thanks.