Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Null move

Author: Peter Fendrich

Date: 10:37:54 02/04/99

Go up one level in this thread


On February 03, 1999 at 22:54:36, James Robertson wrote:

>Help!!
>I am trying to implement null move into my program. Unfortunately, I have spent
>a ton of time and gotton nowhere. I thought I had it when my program won it's
>first ever game against EXchess, but realized it was a fluke when it hung first
>a bishop and then a queen against Faile. Then I found a huge bug, and after
>fixing, the null move doesn't seem to be speeding up the search at all. Anyway,
>here is my AB code: what am I doing wrong?
>
>int AB (int wtm, int alpha, int beta, int depth, int ply, int do_null) {
>
>  if (do_null && NotInCheck()) {
>    if (depth > 3) score = -AB(wtm^1, -beta, -beta+1, depth-3, ply+1, false);
>    else score = -Quiesce(wtm^1, -beta, -alpha, ply+1);
>    if (score >= beta) return beta;
>  }
>
>  GenMoves();
>  while (moves){
>    MakeMove();
>    score = -AB(wtm^1, -beta,-alpha,depth-1,ply+1,true);
>    UnMakeMove();
>    if (score > alpha) SavePV();
>    if (score >= beta) return beta;
>  }
>}
>
>Thanks for any help!
>
>James

Are you actually "doing" the Nullmove?
I mean changing color, updating flags like ep and such?
I would suggest that you define a macro (or function) MakeNullMove() that do
what do in MakeMove() except making any moves on the board. Similar for
UnMakeNullMove() of cource.
//Peter





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.