Author: Andrew Williams
Date: 07:31:58 03/16/00
Go up one level in this thread
On March 16, 2000 at 09:42:43, William H Rogers wrote: >I am still having a problem with quiesce. Lets assume that after several plys >my program ends up on e4. Do I just look at e4 to see if there are any captures, >or do I search the whole board for captures etc.? >I know that checks are included here too. >Thanks in advance >Bill I'm not sure what you mean by "my program ends up on e4", but I don't think it matters. What you should be doing in your alphabeta() function is generating all moves and searching them until you either run out of moves or get a cutoff. You call alphabeta() recursively until depth==0. After depth==0, instead of generating all moves and searching them, you generate *captures only* and search them. Fundamentally, this is the difference between the qsearch and the main alphabeta search. Once you've got a qsearch working, you can look at pruning away some of the pointless captures. eg When you enter qsearch(), you evaluate the current position. If it looks like the score for the side to move is less than (say) alpha-rookvalue, there's no point in considering pawn captures; they're not going to get you a reasonable score and in addition it will no longer be your turn. So you just ignore that capture as it is futile (this is called futility pruning). If none of the captures is reasonable, you can just return the score you got from evaluate(). Andrew
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.