Java Reference
In-Depth Information
Code 10.2
continued
The Fox class
// other static fields omitted
// Individual characteristics (instance fields).
// The fox's age.
private int age;
// Whether the fox is alive or not.
private boolean alive;
// The fox's position.
private Location location;
// The field occupied.
private Field field;
// The fox's food level, which is increased by eating rabbits.
private int foodLevel;
/**
* Create a fox. A fox can be created as a newborn (age zero
* and not hungry) or with a random age and food level.
*
* @param randomAge If true, the fox will have random age
* and hunger level.
* @param field The field currently occupied.
* @param location The location within the field.
*/
public Fox( boolean randomAge, Field field, Location location)
{
// body of constructor omitted
}
/**
* This is what the fox does most of the time: it hunts for
* rabbits. In the process, it might breed, die of hunger,
* or die of old age.
* @param field The field currently occupied.
* @param newFoxes A list to return newly born foxes.
*/
public void hunt(List<Fox> newFoxes)
{
incrementAge();
incrementHunger();
if (alive) {
giveBirth(newFoxes);
// Move towards a source of food if found.
Location newLocation = findFood();
if (newLocation == null ) {
// No food found - try to move to a free location.
newLocation = field.freeAdjacentLocation(location);
}
Search WWH ::




Custom Search