Simple robot - looking for improvements
From User talk:Gertjan96
Jump to navigation
Jump to search
Hello,
I made a simple but (I hope) effective robot. I don't have much experience, so I would love to get any tips on how to further improve this code. It has to be ready in 3,5 hours. Lots of thanks.
package MyRobots;
import robocode.*;
import java.awt.Color;
public class Fireintheass extends AdvancedRobot
{
double distance = 10;
public void run() {
setColors(Color.pink, Color.pink, Color.pink, Color.white, Color.pink);
setAdjustRadarForGunTurn(true);
setTurnRadarRight(360);
while(true) {
ahead(distance + 100);
back(distance);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
turnRight(e.getBearing());
distance = e.getDistance();
if (e.getVelocity() == 0)
{
fire(3);
}
setTurnRadarRight(360);
}
}
A few things I suggest changing:
- Make the forward and back based on a single variable, which you change the value of once every so often (say once every 20 ticks). You can then also change direction for things like hitting a wall, which will help you keep moving.
- Try using a lower bullet power if they are far away. Also, if they are really close, you can fire even if they aren't moving because they won't move enough in time.
- Try using a proper radar lock instead of just spinning - check out One_on_One_Radar#The_Infinity_Lock.
- I don't see anything which is actually turning the gun towards the enemy. Take a look at Linear_Targeting#Example_of_Noniterative_Linear_Targeting for some code which should give you a major edge against any of the sample bots.
It's a pity you don't have a few weeks to work on this, because then you could set your sights above just beating the sample bots =)
Skilgannon (talk)