public boolean canBearOff(final int playerColor) {
        if ( ! legitPlayerColor(playerColor) ) {
            throw new IllegalArgumentException("bad player color '" + playerColor + "'");
        }

        //Here's a quick disqualifier:
        if (onBar(playerColor)) {
            return false;
        }
        int sum = 0; /* gonna count on blots on final quadrant and bear */
        if (playerColor==white) {   
            // add up the white blots on last 6 points + those that already did bear off.
            // If all the blots are here, we can bear off!
            for (int i=startOfWhiteBearOffZone; i<=endOfWhiteBearOffZone; i++) {
                sum += getHowManyBlotsOnPoint(i, white);
            }
            sum = sum + white_bear;
        } else if (playerColor==black) {
            // add up black blots on first 6 points
            for (int i=startOfBlackBearOffZone; i<=endOfBlackBearOffZone; i++) {
                sum += getHowManyBlotsOnPoint(i, black);
            }
            sum = sum + black_bear;
        } else {
            /* why didn't legitPlayerColor( ) find this, above??? */
            throw new IllegalArgumentException("bad player color param '"+ playerColor + "'");
        }

        if (sum==howManyBlots) {
            return true;         //There are 15 blots (pieces) in backgammon
        }
        return false;
    } // canBearOff