boolean friendPlayer1, boolean sameSideOnly,
GoBoardPositionList stack ) {
if ( !board_.inBounds( r + rowOffset, c + colOffset )) {
return 0;
}
GoBoardPosition nbr = (GoBoardPosition) board_.getPosition(r + rowOffset, c + colOffset);
// don't add it if it is in atari
//if (nbr.isInAtari(board_)) {
// return 0;
//}
if ( nbr.isOccupied() &&
(!sameSideOnly || nbr.getPiece().isOwnedByPlayer1() == friendPlayer1) && !nbr.isVisited() ) {
BoardPosition intermediate1, intermediate2;
if ( Math.abs( rowOffset ) == 2 ) {
int rr = r + (rowOffset >> 1);
intermediate1 = board_.getPosition(rr, c);