cs175:cs-175_sp13_robocode_select_fire_with_variables
Making decisions in Robocode methods
- A Robocode robot can fire its cannon using variable power. The higher the power used in firing, the greater the energy drain. Also, a “heavier” cannon shot travels more slowly, while a “lighter” cannon shot travels more quickly. It would make sense to use a larger cannon fire energy value when the enemy tank is at close range and to use a smaller cannon fire energy value when the enemy tank is further away.
Change fire power based on opposing robot distance
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
cs175/cs-175_sp13_robocode_select_fire_with_variables.txt · Last modified: by jchung
