In robocode, create AdjustFireBot1 and try the following.
/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
// 1 - Get distance to scanned robot e:
double distance = e.getDistance();
// 2 - See what range of distances the distance from 1 falls in,
// and set power appropriately:
double power = 0.0; // This the fire power variable.
// Pseudocode; translate to Java:
//
// If distance is less than 100, set power to 3 (max).
//
// If distance is between 100 and 300, set power to 2.
//
// If distance is between 300 and 500, set power to 1.
//
// If distance is greater than 500, set power to 0.1 (min).
// 3 - Fire the cannon with range-appropriate power:
fire( power );
System.out.println("power: " + power); // See this output in robot's console during battle
}
Link to robot source code, if-only version
Link to robot source code, if-else version