


public class RuleSet {
	private final boolean[] causesBirth;
	private final boolean[] causesDeath;
	
	public RuleSet(boolean[] causesBirth, boolean[] causesDeath) {
		this.causesBirth = causesBirth;
		this.causesDeath = causesDeath;
	}
	
	int apply(LifeForm lf) {
		int type = lf.getType();
		int size = 0;
		for(int i = 0; i < lf.getNeighbourhood().length; i++) {
			if (lf.getNeighbourhood()[i] > 0) {
				size++;
			}
		}
		if( (type == 0 && causesBirth[size]) || (type==1 && !causesDeath[size]) ) {
			return 1;
		} else {
			return 0;
		}
	}
}
