* @return number of additional jump moves added.
*/
private int checkJumpMove( BoardPosition current,
CheckersMove m, int rowInc, int colInc,
List<CheckersMove> jumpMoves, ParameterArray weights ) {
BoardPosition next = board_.getPosition( current.getRow() + rowInc, current.getCol() + colInc );
BoardPosition beyondNext = board_.getPosition( current.getRow() + 2 * rowInc, current.getCol() + 2 * colInc );
// if the adjacent square is an opponent's piece, and the space beyond it
// is empty, and we have not already capture this piece, then take another jump.
boolean opponentAdjacent =
next!=null && next.isOccupied() && (next.getPiece().isOwnedByPlayer1() != m.isPlayer1());
if ( opponentAdjacent
&& beyondNext!=null && beyondNext.isUnoccupied()
&& (m.captureList != null) && (!m.captureList.alreadyCaptured( next )) ) {
// then there is another jump. We must take it.
CheckersMove mm = m.copy(); // base it on the original jump
mm.setToLocation(new ByteLocation(beyondNext.getLocation().getRow(), beyondNext.getLocation().getCol()));
mm.captureList.add( next.copy() );
// next.setPiece(null); ?
boolean justKinged = false; // ?? may be superfluous
GameContext.log( 2, "calling findJumpMoves on " +