private boolean add2(int num) {
        
        ArrayList<int[]> zeros = new ArrayList<int[]>();
        
        for (int c = 0; c < col; c++) {
            for (int r = 0; r < row; r++) {
                if (board[c][r] == 0) {
                    int[] temp = { c, r };
                    zeros.add(temp);
                }
            }
        }
        
        // if already full, return true.
        if (zeros.size() == 0)
            return true;
        
        Random random = new Random();
        
        if (zeros.size() < num)
            num = zeros.size();
        for (int i = 0; i < num; i++) {
            int pos = random.nextInt(zeros.size());
            board[zeros.get(pos)[0]][zeros.get(pos)[1]] = 1;
            zeros.remove(pos);
        }
        
        // if full, return true. not full, false.
        return zeros.size() == 0;
    }