Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Quiesce Question

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.