public /*static*/ boolean canLandOn(int pointNum, int playerColor) {
        if (pointNum == ILLEGAL_MOVE) {
            return false;
        }
        // hmmm, if (onBar(playerColor)) and this isn't about a point leaving the bar then false ?? */
        if (! legitEndLoc(pointNum, playerColor)) { /* checks legitPlayerColor */
            return false; 
            // Or?? throw new IllegalArgumentException("bad pointNum '" + pointNum + "'");
        }

        if (canLandOnExact(pointNum, playerColor)) { // allows BEAR_OFF_LOC, not PAST_BEAR_OFF
            return true;
        } else if (((pointNum == WHITE_PAST_BEAR_OFF_LOC) && (playerColor == white)) 
        || ((pointNum == BLACK_PAST_BEAR_OFF_LOC) && (playerColor == black))) {
            if ( canBearOff(playerColor) && needsInexactRolls(playerColor)) {
                return true;
            }
        }
        return false;
    } // canLandOn