/**
   * (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;
  }
Ejemplo n.º 2
0
  @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;
  }