private void init(char[][] data) {
        if (data.length != map.length || data[0].length != map[0].length) {
            throw new IllegalArgumentException("data array "
                    + "does not match level size!");
        }
        
        for (int col = 0; col < cols; col++) {
            for (int row = 0; row < rows; row++) {
                map[col][row] = translate(data[col][row]);
            }
        }
    }