Complete the Grid interface practice test before reviewing the solution.
Review the Grid interface practice test with AP CS Tutor Brandon Horn.
Question 1
(B) III only
The only precondition of isValid
is that the parameter is not null
. If the parameter is not valid in the grid, isValid
returns false
. This is not a violation of its precondition.
Question 2
ArrayList<Actor> actors = new ArrayList<Actor>();
ArrayList<Location> locs = g.getOccupiedLocations();
for(Location loc : locs)
actors.add(g.get(loc));
return actors;
Grid
provides a method to get a list of all occupied locations; however, there is no method to get a list of all actors. You need to know how compute one given the other.
Question 3
(A) [(0, 1), (0, 3), (1, 1), (1, 2), (1, 3)]
(B) [(2, 0), (2, 1), (3, 1)]
(C) Violates preconditon of getAdjacentLocations
(D) Violates preconditon of getAdjacentLocations
You must know what is returned by getAdjacentLocations
for locations with different characteristics. For example, (3, 0)
is at the edge of the grid and getAdjacentLocations
returns only valid locations.
The precondition of getAdjacentLocations
is that its explicit parameter is a valid location in the grid. (4, 5)
is not a valid location in a 4 x 5 bounded grid.
You should also know that the Location
class has a compareTo
method that orders Location
objects in row-major order. You are not required to memorize this. Instead, you should know where to look it up in your Quick Reference and understand the documentation.