1.  Lines that will cause compilation errors:

    5 and 6        accessing private members [3 pts]
    10             private method            [2 pts]

    In a different package: the above plus

    7 and 8        package-private variables [3 pts]
    14             package-private method    [2 pts]

2.  

    int not declared       [2pts]
    wrong bound (<=)       [2pts]
    correct length         [2pts]
    missing index          [2pts]
    return wrong type      [2pts]

    public static int firstDiff(int a[], int b[]) {
        for (int i = 0; i < a.length; i++)
            if (a[i] != b[i])
                return i;
        return -1;
    }

3.  Only line c = v   [5 pts]

    Vehicle: drive    [5 pts] -- [3pts withoug last line]
    Car: drive
    Car: drive
    Car: drive

Note:  also full points for *plausible* answers caused by "line" vs "lines"

4.  B: [3pts]
         pos   = 0
         score = 0
    C: [3pts]
         return randomInt(6)+1;
    D: [2pts]
         private int n;
    E: [3pts]
         this.n = n;
    F: [3pts]
         return n;
    G: [2pts]
         Square[] squares;
         int nrSq;
    H: [3pts]
         this.nrSq = nrSq;
    I: [3pts]
         squares = new Squares[nrSq];
    J: [3pts]
         squares[0] = new Square(0);
    K: [5pts]
         for (int i = 1; i < nrSq; i++)
             squares[i] = new Square(randomInt(19) - 9);

5. 
    [10pts]
    public static void round(Board board, Player[] players) {
        for (int i = 0; i < players.length; i++) { [2pts]
            int roll = players[i].rollDice(); [2pts]
            players[i].pos += roll;           [2pts]
            players[i].pos = players[i].pos % board.nrSq; [2pts]
            players[i].score +=
                 board.squares[players[i].pos].changeScore(); [2pts]
         }
    }

    [10pts]
    public static int winner(Player[] players) {
        int winner = 0; [2pts]
        for (int i = 1; i < players.length; i++) [3pts]
            if (players[i].score >= players[winner].score) [3pts]
                winner = i;
        return winner; [2pts]
     }

6.
    [20pts]
    boolean threeConsecutive(int[] a) {
       if (a.length < 3)   [5pts] corner case check
          return false;
       for (int i = 0; i <= a.length-3; i++)  // [5pts] correct bound
          if (a[i+1] == a[i]+1 &&        // [5pts] correct check
              a[i+1]+1 == a[i+2])
              return true;
       return false; [5pts] correct return value
    }
