/** * (non-Javadoc) * * @see game.ai.Fitness#evaluate(game.State) */ @Override public int evaluate(State state) { int sum = 0; for (int pos : state.lambdaPositions) sum += MathUtil.distanceToPos(state.robotCol, state.robotRow, pos, state.board.height); return sum; }
@Override public int evaluate(State state) { int maxDistance = state.board.height + state.board.width; int minDistance; if (state.lambdaPositions.isEmpty()) return 1000000; else { int bestLambda = nextLambda[state.board.position(state.robotCol, state.robotRow)]; minDistance = MathUtil.distanceToPos(state.robotCol, state.robotRow, bestLambda, state.board.height); } int r = (int) ((1 - (double) minDistance / maxDistance) * 1000000); return r; }