private static boolean downUp() {
        for (int i = 0; i < ROWS - 3; i++) {
            str.setLength(0);
            for (int j = 0; j < ROWS - i; j++) {
                int x = j;
                int y = (ROWS) - 1 - i - j;
                str.append(compareStates(x, y));
            }
            if (str.indexOf(PATTERN) > -1 || str.indexOf(PATTERN_REV) > -1) return true;
        }
        for (int i = 1; i < COLS - 3; i++) {
            str.setLength(0);
            for (int j = 0; j < ROWS - i + 1; j++) {
                int x = j + i;
                int y = ROWS - j - 1;
                str.append(compareStates(x, y));
            }
            if (str.indexOf(PATTERN) > -1 || str.indexOf(PATTERN_REV) > -1) return true;
        }
        return false;
    }//end downUp()