import java.util.*; public class State { BitSet state; int decimalState; int patchesOn; float combinedArea; int counter; public State(BitSet state){ this.state = state; counter = 1; patchesOn = state.cardinality(); decimalState = toInt(state); } public State(int key){ this.state = null; counter = 1; patchesOn = -1; decimalState = key; } private int toInt(BitSet b){ int x = 0; for (int i=b.size()-1;i>=0;i--){ x = x*2; if (b.get(i)) x++; } return x; } public void f(int n){ if (n>0){ System.out.print(n%2); f(n/2); } } public void inc(){counter++;} public String toString(){ return decimalState +" "+ counter +" "+ patchesOn +" "+ state; } }