/** * Look for rabbits adjacent to the current location. Only the first live rabbit is eaten. * * @return Where food was found, or null if it wasn't. */ private Location findFood() { Field field = getField(); List<Location> adjacent = field.adjacentLocations(getLocation()); Iterator<Location> it = adjacent.iterator(); while (it.hasNext()) { Location where = it.next(); Object animal = field.getObjectAt(where); if (animal instanceof Rabbit) { Rabbit rabbit = (Rabbit) animal; if (rabbit.isAlive()) { rabbit.setDead(); foodLevel = RABBIT_FOOD_VALUE; // Remove the dead rabbit from the field. return where; } } if (animal instanceof Fox) { Fox fox = (Fox) animal; if (fox.isAlive()) { fox.setDead(); foodLevel = WOLVES_FOOD_VALUE; // Remove the dead rabbit from the field. return where; } } } return null; }