@Override protected void updateHeuristic(StateObservation actualState) { final Vector2d avPos = actualState.getAvatarPosition(); final ArrayList<Observation>[] observables = this.getObservables(actualState); if (observables == null || observables.length == 0) { return; } // double nearest = Double.MAX_VALUE; // int nearestID = Integer.MAX_VALUE; for (ArrayList<Observation> observableList : observables) { for (Observation observable : observableList) { // double mhDist = observable.position.dist(avPos);//Math.abs(xDist + yDist); // // if (mhDist < nearest && !(this.tabooMap.containsKey(observable.obsID))) // { // nearest = mhDist; // nearestID = observable.obsID; // } if (avPos.equals(observable.position)) { this.tabooMap.put(observable.obsID, actualState.getGameTick()); } if (this.tabooMap.containsKey(observable.obsID) && this.tabooMap.get(observable.obsID).intValue() + this.tabooTime < actualState.getGameTick()) { this.tabooMap.remove(observable.obsID); } } } // if (nearestID == this.nearestObsID) // { // sameObsIDCounter++; // // if (sameObsIDCounter > sameObsIDCounterMax) // { // this.tabooMap.put(nearestID, actualState.getGameTick()); // this.nearestObsID = Integer.MAX_VALUE; // this.sameObsIDCounter = 0; // } // } // else // { // this.nearestObsID = nearestID; // sameObsIDCounter = 0; // } }