Prosty robot dla Robocode Polska
Jedno z prostszych możliwych rozwiązań, które jednocześnie łatwo zmodyfikować do czegoś co będzie jako tako grało:
/**
* Prosty robot, strzela prosto w przeciwnika i cały czas strafe'uje (jak w Quake'u).
* Kod na licencji WTFPL (bo public domain u nas nie funkcjonuje).
*/
package lrem;
import java.awt.Color;
import robocode.AdvancedRobot;
import robocode.ScannedRobotEvent;
/**
* @author lrem
*
*/
public class Strafe extends AdvancedRobot {
static int interwal = 30;
public void run () {
setColors(Color.white, Color.red, Color.white);
setAdjustRadarForGunTurn(true);
setAdjustGunForRobotTurn(true);
setTurnRadarRightRadians(Double.POSITIVE_INFINITY);
setAhead(Double.POSITIVE_INFINITY);
int turDoZmianKierunku = interwal;
int kierunek = 1;
while(true) {
if(--turDoZmianKierunku == 0) {
kierunek *= -1;
turDoZmianKierunku = interwal;
setAhead(kierunek * Double.POSITIVE_INFINITY);
}
execute();
}
}
public void onScannedRobot (ScannedRobotEvent e) {
setTurnRadarLeftRadians(getRadarTurnRemainingRadians());
setTurnGunRightRadians(robocode.util.Utils.normalRelativeAngle(getHeadingRadians()
+ e.getBearingRadians() - getGunHeadingRadians()));
setTurnRightRadians(robocode.util.Utils.normalRelativeAngle(e.getBearingRadians() - Math.PI / 2));
setFire(2.0);
}
}
Stworzony na użytek Robocode Polska.