Author: Gerd Isenberg
Date: 14:36:03 09/09/02
Go up one level in this thread
sorry, you use delphi but not c. Therefore a few comments may help...
bool isConnected(BitBoard &theBB /* call by reference */, int from, int to)
{
 if (Distance(from, to) <= 1)
  return true;
 // get all adjacent squares still in the set
 BitBoard adjacentBB = sKingAtta[from] & theBB;
 // reset squares in the set, to only traverse a square once
 theBB &= ~adjacentBB;
 while (adjacentBB)
 { // for all squares ...
  int sq = findLSBAndReset(adjacentBB); // gets index of lsb with reset
  if ( isConnected(theBB, sq, to) ) return true;  // and do the recursive call
 }
 return false; // no connection found so far
}
Gerd
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.