Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Rebel's long checks concept in QS

Author: rasjid chan

Date: 06:34:49 01/24/04

Go up one level in this thread


On January 23, 2004 at 14:22:28, milix wrote:

>I tried to implement the long checks idea of Ed Schröder
>(http://members.home.nl/matador/chess840.htm#QS) but not worked for me.
>Maybe my QS is not implemented correctly to have this checks concept but I can't
>figure it by myself. I wish for some help here (maybe from Ed himself) :-)
>
>In my main search, before I enter the QS I set the variable MAX_CHECKS_DEPTH to
>2.
>
>My quiescent in pseudo code:
>
>quiescent(alpha, beta)
>{
>   save the MAX_CHECKS_DEPTH
>   score = full_evaluate()
>   if (score < alpha) return score
>   if (score > alpha) alpha = score
>
>   if (side_to_move_is_in_check)
>      generate_legal_moves()
>   else if (MAX_CHECKS_DEPTH > 0)
>      generate_good_equal_captures_queenpromotions_and_checks()
>   else generate_good_equal_captures_queenpromotions()
>   sort_the_moves()
>
>   for each move in the list {
>      make_the_move()
>      score = - quiescent(-beta, -alpha)
>      undo_the_move()
>      restore MAX_CHECKS_DEPTH
>      if (score < alpha) return score;
>      if (score > alpha) alpha = score;
>   }
>   MAX_CHECKS_DEPTH = MAX_CHECKS_DEPTH - 1
>
>   return alpha
>}
>
>Thanks in advance!



quiescent(alpha, beta)

  save the MAX_CHECKS_DEPTH
  score = full_evaluate()
  if (score < alpha) return score
  if (score > alpha) alpha = score

These lines WRONG.
should be

if (score > alpha){
if (score >= beta) return score;
alpha = score;
}


Ed's article have alpha and beta reversed to the TSCP style.
someone pointed this out to me.

He has

search(){

go-thru move-list

makemove()
score = eval();
etc...

}






}












This page took 0.22 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.