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.