Author: Daniel Clausen
Date: 06:17:28 07/02/01
Go up one level in this thread
Hi On July 02, 2001 at 07:39:11, Uri Blass wrote: >On July 02, 2001 at 05:12:48, Andrew Williams wrote: >>I wouldn't care too much about that. Suppose you have loads of stuff in your >>makemove() that makes it possible to achieve very good move-ordering. Or that >>makes it very quick to evaluate a node (because much of the work has been done >>earlier). Then your perft speed will be terrible, but your program could be >>excellent. >> >>Andrew > >Thanks, but I know that there are programs that generate only legal moves that >are faster than Crafty in calculating perft because they do not have to make >the last move. > >My program does not have to do the makemove() in order to know the number of >legal moves in the last ply because this number is calculated in the gen() >function but inspite of this it is about 10 times slower than Crafty. > >The main problem of my program is the fact that my function of updating the >arrays is not good and I calculate again a lot of information that is not >changed. > >An example: after a pawn move like a2-a4 the directions that c4 is seen and the >square that c4 is seen are the same but my program does not know it. > >Note that you need to update this information after b2-b4 beacuase it is >possible that there is a Rook in a4 before the move but my program in this case >also does a lot of other calculations that are not relevant. > >It does not construct all my arrays from scratch except after enpassant move or >castling(this is also something that needs to be corrected) but it does a lot >of useless computations. > >Uri I support Andrew's opinion in not worrying too much about speed. Since you're also a programmer you know that in the beginning (first 20 years in case of a chess engine? :) everything is re-coded and re-engineered probably several times. I didn't implement an undoMove function as of yet and I'm pretty happy about that. (I simply make a copy of the current board and copy it over the new one instead of calling undoMove()) I'm pretty sure this slows down things a lot (my board structure is huge, since it's a bitboard-based engine) but my engine sucks in so many ways that this slowdown is a minor problem. *smiles* Regards, Sargon
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.