All pastes #175452 Raw Edit

Miscellany

public java v1 · immutable
·published 2006-09-18 20:04 UTC
rendered paste body
package tormentor;import robocode.*;import java.awt.Color;/** * TheTormentor - a robot by Robert Widdick */public class TheTormentor extends Robot{	double oldEnergy = 0;    double newEnergy = 0;	public void run() {		setBodyColor(Color.black);		setGunColor(new Color(0, 0, 0));		setRadarColor(new Color(200, 200, 70));		setScanColor(Color.white);		setBulletColor(Color.blue);				addCustomEvent(new Condition("bulletfired") {            public boolean test() {                double delta = oldEnergy - newEnergy;                oldEnergy = newEnergy;                return delta >= 0.1 && delta <= 3;            };        }		setAdjustRadarForRobotTurn(true);		while(true) {			turnGunRight(360);			// manipulative stuff here :>		}	}		public void onScannedRobot(ScannedRobotEvent e) {		turnLeft( smallestToParallel(90 - e.getBearing()));        newEnergy = e.getEnergy();        turnRadarRight(normalRelativeAngle(e.getBearing() + getHeading() - getRadarHeading()));		turnGunRight(normalRelativeAngle(e.getBearing() + (getHeading() - getRadarHeading())));				fire(3);		        scan();	}		public void onCustomEvent(CustomEvent e)    {        if (e.getCondition().getName().equals("bulletfired"))            setAhead(distance);    }		public void onHitRobot(HitRobotEvent e) {		turnRight(e.getBearing());				if (e.getEnergy() > 16)	fire(3);		else if (e.getEnergy() > 10) fire(2);		else if (e.getEnergy() > 4) fire(1);		else if (e.getEnergy() > 2) fire(.5);		else if (e.getEnergy() > .4) fire(.1);		ahead(40);	}		public void onHitWall(HitWallEvent e) {        distance *= -1;        ahead(distance);    }	    public void onHitByBullet(HitByBulletEvent e) {		turnLeft(smallestToParallel(90 - e.getBearing()));		ahead(distance);		scan();    }		public void onWin() {		if (getOthers() == 0) {			setMaxVelocity(5);			setTurnGunRight(10000);			while(true) {				ahead(20);				back(20);				if (getEnergy() > 0.1)    	        	fire(0.1);			}        }	}		public double normalAbsoluteAngle(double angle) {		if (angle >= 0 && angle < 360)	return angle;				double fixedAngle = angle;		while (fixedAngle < 0) fixedAngle += 360;		while (fixedAngle >= 360) fixedAngle -= 360;		return fixedAngle;	}	public double normalRelativeAngle(double angle) {		if (angle > -180 && angle <= 180) return angle;		double fixedAngle = angle;		while (fixedAngle <= -180) fixedAngle += 360;		while (fixedAngle > 180) fixedAngle -= 360;		return fixedAngle;	}		public double smallestToParallel(double angle) {        if (angle > -90 && angle <= 90)            return angle;        double fixedAngle = angle;        while (fixedAngle <= -90)            fixedAngle += 180;        while (fixedAngle > 90)            fixedAngle -= 180;        return fixedAngle;    }}