Note: GridWorld is no longer featured on the AP CS A Exam (since the 2015 Exam).

One of the four free response problems on each AP Computer Science Exam referenced the GridWorld Case Study. Previous problems required students to write the complete class for a creature that extends Critter.

Problem description

This question involves reasoning about the GridWorld case study. Reference materials are provided in the Quick Reference.

Assume that the following 3 lines are in the GiraffeCritter class. You do not need to copy these lines when you write the GiraffeCritter class.

public static final int STOMACH_SIZE = /* a positive number */;
public static final int NECK_SIZE = /* a positive number */;
public static final int MAX_HUNGRY_STEPS = /* a positive number */;

A GiraffeCritter is a Critter that eats flowers to survive. Each time the GiraffeCritter acts, it attempts to eat STOMACH_SIZE flowers from the area within NECK_SIZE rows and NECK_SIZE columns. The GiraffeCritter eats a flower by removing it from the grid.

If the GiraffeCritter is able to eat STOMACH_SIZE flowers in a step, it remains at the same location for the step. If the GiraffeCritter is unable to eat STOMACH_SIZE flowers in a step, it moves like a Critter. If the GiraffeCritter is unable to eat STOMACH_SIZE flowers for MAX_HUNGRY_STEPS consecutive steps, it removes itself from the grid.

Write the complete GiraffeCritter class, including all instance variables and required methods. Do NOT override the act method. Remember that your design must not violate the postconditions of the methods of the Critter class and that updating an object’s instance variable changes the state of that object.

The processActors method of the Critter class illustrates how to check if an actor is an instance of a class.

See the GiraffeCritter solution and explanation or review it with AP CS Tutor Brandon Horn.