Author: Johan Wessfeldt
Date: 15:59:01 08/11/03
Go up one level in this thread
On August 11, 2003 at 03:54:38, Thomas McBurney wrote:
>On August 10, 2003 at 21:03:18, Johan Wessfeldt wrote:
>
>>jO!
>>
>>Im working on a chessengine in java and I'm pretty much done with my move
>>generation algorithms.(Took awhile to complete.. :] )
>>
>>Are there any common tests ppl use to test their chess engines with to see how
>>fast it is? (Not how smart it is)
>>
>>Like.. creating 1.000.000 move-lists out of preset chess position.
>>Could be fun to see if my engine(or java) is good or not :]
>
>
>Throw this position into your move generator and do a perft test on it. This
>position has a nsty habit of crashing engines, even the odd comercial engine
>like my Frtiz 4.
>
>[D]R6R/3Q4/1Q4Q1/4Q3/2Q4Q/Q4Q2/pp1Q4/kBNN1KB1 w - - 0 1
>
>This is the output from my chess engine. Can someone verify the following perft
>results with their engine?
>
>depth 1 nodes= 218
>depth 2 nodes= 99
>depth 3 nodes= 19073
>depth 4 nodes= 85043
>depth 5 nodes= 13853661
>depth 6 nodes= 115892741
>
>Also look at Peters perft test web page for good perft tests and results .
>http://homepages.caverock.net.nz/~peter/perft.htm
>
>Cheers,
>Tom.
Thanks for all replies!
I made my first perftest today with the default opening position.
I had a nasty bug giving me wrong figures after depth 3.
Found it after awhile.. a ghost "enpassant" square was fooling around :]
Obs.
Time values are not the executable time of the process. They are real time
values.
Java cant give you the executable time of the process. Abit pitty :/
Results:
depth: 1
nodes: 20
time: 0ms
depth: 2
nodes: 400
time: 16ms
depth: 3
nodes: 8902
time: 78ms
depth:4
nodes:197281
time:906ms
depth:5
nodes:4865609
time:11828ms
I tried doing the same tests with crafty and was quit suprised.
It did depth 5 in 1.07 secs!
DepthFirstSearch algo in my code(java):
private int depthFirstSearch(int depth){
if(depth == 0) return 1;
LinkedList moves = generator.genAllMoves(pos);
int nrOfLeaves = 0;
while( !moves.isEmpty() ){
pos.makeMove( (Move) moves.removeFirst() );
nrOfLeaves += depthFirstSearch(depth-1);
pos.unMakeMove();
}
return nrOfLeaves;
}
I also tried Tom's little Test.
Depth one is ok but at depth 2 I get only 36 leaves reporting back.
I've no idea why.. :[
/ Johan
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.