protected int computeState(int neighbors[]){
		int numberOfLiveNeighbors = 0;
		for(int i = 1; i < neighbors.length; i++){
			if(neighbors[i] != CellularAutomatonConstants.NO_VALUE){
				if(neighbors[i] == GameOfLifeAutomaton.CELL_LIVE){ 
					numberOfLiveNeighbors++;
				}
			}
		}
		if(neighbors[0] == GameOfLifeAutomaton.CELL_LIVE){
			if(numberOfLiveNeighbors == 0 || numberOfLiveNeighbors == 1 || numberOfLiveNeighbors > 3){
				return CELL_DEAD;
			}
		}
		else{
			if(numberOfLiveNeighbors != 3){
				return CELL_DEAD;
			}
		}

		return CELL_LIVE;
	}