Author: Tord Romstad
Date: 10:56:07 10/02/03
Go up one level in this thread
On October 02, 2003 at 13:34:15, Anthony Cozzie wrote: >If I understand it correctly, implementing the BM extension in Zappa would go >like so (pseudoish): > > do_null_search(); > rb->null_threat = rb->best_move; > if(ply >= 2 && m_f_loc((rb-2)->null_threat) == m_f_loc(rb->null_threat)) > trigger_extension(); Yes, something like that, assuming that rb->best_move contains the move that refuted the null move, and that the function m_f_loc() returns the 'target' of the move. This is a simplified version of my code: if(ok_to_do_null_move()) { make_null_move(); null_value = -search(-gamma+1, depth-(R+1)*PLY); unmake_null_move(); if(null_value >= gamma) return null_value; /* Botvinnik-Markoff extension */ if(null_value < margin) { ThreatMove[Ply] = CurrentMove[Ply+1]; if((To(ThreatMove[Ply])==To(CurrentMove[Ply-2]) && To(ThreatMove[Ply-2])==From(CurrentMove[Ply-2])) || (To(ThreatMove[Ply]) != To(CurrentMove[Ply-2]) && To(ThreatMove[Ply]) == To(ThreatMove[Ply-2]))) bm_ext = 1; /* Trigger Botvinnik-Markoff extension */ } else ThreatMove[Ply] = 0; }} Tord
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.