2013 Grid World Utilities
<< 2013 TokenPass | APQuestionsTrailIndex | 2013 SkyView >>
Click here to see the questions from 2013
GridWorldUtilities.java
import info.gridworld.actor.Actor; import info.gridworld.grid.Grid; import info.gridworld.grid.Location; import java.util.ArrayList; public class GridWorldUtilities { /** Gets all the locations in grid that do not contain objects. * @param grid a reference to a BoundedGrid object * @return an array list (possibly empty) of empty locations in grid. * The size of the returned list is 0 if there are no empty locations in grid. * Each empty location in grid should appear exactly once in the returned list. */ public static ArrayList<Location> getEmptyLocations(Grid<Actor> grid) { /* to be implemented in part (a) */ } //There may be instance variables that are not shown. }
JumpingCritter.java
import java.util.ArrayList; import info.gridworld.actor.Critter; import info.gridworld.grid.Location; public class JumpingCritter extends Critter { /** * A JumpingCritter acts like a Critter, except that it moves by jumping to a * randomly selected empty location in its grid. * If there are no empty locations, the JumpingCritter removes itself from the grid. */ //to be implemented inpart (b) }
JumpingCritterRunner1.java
import info.gridworld.actor.*; import info.gridworld.grid.*; import java.awt.Color; public class JumpingCritterRunner1 { public static void main(String[] args) { ActorWorld world = new ActorWorld(); world.setGrid(new BoundedGrid<Actor>(4,4)); JumpingCritter j=new JumpingCritter(); j.setDirection(Location.SOUTHWEST); Bug b = new Bug(); b.setDirection(Location.EAST); world.add(new Location(2, 1), new Rock()); world.add(new Location(3, 1), b); world.add(new Location(2, 0), j); world.show(); } }
JumpingCritterRunner2.java
import info.gridworld.actor.*; import info.gridworld.grid.*; import java.awt.Color; public class JumpingCritterRunner2 { public static void main(String[] args) { ActorWorld world = new ActorWorld(); world.setGrid(new BoundedGrid<Actor>(4,4)); JumpingCritter j=new JumpingCritter(); j.setDirection(Location.NORTH); for(int r=0 ; r<4;r++) for(int c=0; c<4; c++) world.add(new Location(r, c), new Rock()); world.add(new Location(1,2), j); world.show(); } }