@Override public double evaluate(StateObservation oldState, StateObservation newState) { List<Observation> movables = StateObservationUtils.getMovablesOfType(newState, itypeOfMovable); List<Observation> sinks = StateObservationUtils.getImmovablesOfType(newState, itypeOfSink); double dist = calcDistBetweenMovablesAndSinks(movables, sinks, newState.getBlockSize()); return dist; }