public int evaluate(World world) { //double accumulatedDistance = 0.0d; double lowestDistance = double.PositiveInfinity; int hitBonus = 0; for (int n = 0; n < 100; n++) { world.update(); double distance = Distance.Calculate(world.missile, world.ship); if (distance < world.missile.velocity) distance = Distance.CalculateMinInLastLeg(world.missile, world.ship); if (distance < lowestDistance) lowestDistance = distance; //accumulatedDistance += distance; if (distance < 5.0d) { hitBonus = 1000; return hitBonus; } } return 250 - (int)lowestDistance; //return hitBonus - (int)accumulatedDistance; }