Author: Uri Blass
Date: 11:45:53 10/02/03
Go up one level in this thread
On October 02, 2003 at 13:56:07, Tord Romstad wrote: >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 1)Do you do special steps to remember currentmove[ply+1]? I remember the last move that I made at depth ply+1 but if the qsearch after null generates no moves then I may remember wrong move from previous search. I can see 2 solutions to this problem (one to remember the nodes after null move and another solution is to remember last move as null move in case that qsearch makes no nodes). 2)Do you check if you threat the same square also in case when the square is empty so it can be mate threat in the same square? Uri
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.