/*
 * Created on Nov 22, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package jone;

import java.awt.geom.Point2D;

/**
 * @author brian
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public abstract class Animal extends Critter {

	public  abstract Animal mateWith(Animal animal) ;
	public  abstract Animal mutate();
	public  void move() {};
	public  int computeFitness(double birthCost, double overConsumptionPenalty, 
			double foodBonus) { return 0; };
	public  int getFitness() {return 0; };
	
	public void init()
	{
		optimalFoodCapacity = 10;
		foodConsumed = 0;
		consumptionRate = .1;
		foodInStomach = 0;
		overEatPenalty = 0;
	}
	//protected  Animal(Brain b) {};
	public abstract void eat(Critter [] critters);
	public abstract void think(double [] state);
	protected double directionMagnitude;
	//protected Point2D velocity;
	//protected Point2D position;
	protected Brain brain;
	protected double optimalFoodCapacity;
	protected double foodConsumed;
	protected double consumptionRate;
	protected double foodInStomach;
	protected double overEatPenalty;
	protected int fitness;
	protected Point2D.Double direction;
	protected int age = 0;
	
}
