if (cf>0) { ba[n].setBridgeCF(cf); }
    private IBoard createBoard(Properties p)        throws Exception    {        int mapWidth = 16, mapHeight = 17;        if (p.getProperty("MapWidth") == null) {            System.out.println("No map width specified.  Using "+mapWidth);        }        else {            mapWidth = Integer.parseInt(p.getProperty("MapWidth"));        }                if (p.getProperty("MapHeight") == null) {            System.out.println("No map height specified.  Using "+mapHeight);        }        else {            mapHeight = Integer.parseInt(p.getProperty("MapHeight"));        }        int nWidth = 1, nHeight = 1;        if (p.getProperty("BoardWidth") == null) {            System.out.println("No board width specified.  Using "+nWidth);        }        else {            nWidth = Integer.parseInt(p.getProperty("BoardWidth"));        }                if (p.getProperty("BoardHeight") == null) {            System.out.println("No board height specified.  Using "+nHeight);        }        else {            nHeight = Integer.parseInt(p.getProperty("BoardHeight"));        }                System.out.println("Mapsheets are "+mapWidth+ " by " + mapHeight +" hexes.");        System.out.println("Constructing " + nWidth + " by " + nHeight + " board.");                // load available boards        // basically copied from Server.java.  Should get moved somewhere neutral        Vector vBoards = new Vector();        File boardDir = new File("data/boards");        String[] fileList = boardDir.list();        for (int i = 0; i < fileList.length; i++) {            if (fileList[i].endsWith(".board")) {                vBoards.addElement(fileList[i].substring(0, fileList[i].lastIndexOf(".board")));            }        }                IBoard[] ba = new IBoard[nWidth * nHeight];        StringTokenizer st = new StringTokenizer(p.getProperty("Maps"), ",");        for (int x = 0; x < nWidth; x++) {            for (int y = 0; y < nHeight; y++) {                int n = y * nWidth + x;                String sBoard = "RANDOM";                if (st.hasMoreTokens()) {                    sBoard = st.nextToken();                }                System.out.println("(" + x + "," + y + ")" + sBoard);                                boolean isRotated = false;                if ( sBoard.startsWith( Board.BOARD_REQUEST_ROTATION ) ) {                    isRotated = true;                    sBoard = sBoard.substring                        ( Board.BOARD_REQUEST_ROTATION.length() );                }                String sBoardFile;                if (sBoard.equals("RANDOM")) {                    sBoardFile = (String)(vBoards.elementAt(Compute.randomInt(vBoards.size()))) + ".board";                }                else {                    sBoardFile = sBoard + ".board";                }                File fBoard = new File(boardDir, sBoardFile);                if (!fBoard.exists()) {                    throw new Exception("Scenario requires nonexistant board: " + sBoard);                }                ba[n] = new Board();                ba[n].load(sBoardFile);                BoardUtilities.flip(ba[n], isRotated, isRotated );            }        }                // if only one board just return it.        if(ba.length == 1) return ba[0];        // construct the big board        return BoardUtilities.combine(mapWidth, mapHeight, nWidth, nHeight, ba);    }