Difference between revisions of "Talk:Opposite"

From Robowiki
Jump to navigation Jump to search
(Sign commment + add a note)
m (Spelling)
Line 39: Line 39:
 
</pre>
 
</pre>
  
Note: I'm almost certain that this will fit into 132 bytes. If you need to put something else if, you could change it to head-on targeting or remove the line that locks on the radar before firing. Just remember that that line is pretty important for making the gun accurate--[[User:CrazyBassoonist|CrazyBassoonist]] 18:14, 12 September 2009 (UTC)
+
Note: I'm almost certain that this will fit into 132 bytes. If you need to put something else in, you could change it to head-on targeting or remove the line that locks on the radar before firing. Just remember that that line is pretty important for making the gun accurate--[[User:CrazyBassoonist|CrazyBassoonist]] 18:14, 12 September 2009 (UTC)

Revision as of 19:14, 12 September 2009

Any ideas for a targeting scheme with 132 bytes? (including how to select a target) --Starrynte 17:45, 12 September 2009 (UTC)

I'm not sure how much this will help, but this is the enemy selection I tend to use in codesize-restricted melee bots. I used linear targeting in this example:

package oog.nano.aorta;

import robocode.*;
import robocode.util.*;

public class Aorta extends AdvancedRobot {
	static double enemyDist;
	static String enemyName;
	public void run(){
		enemyDist=Double.POSITIVE_INFINITY;
		setTurnRadarRightRadians(Double.POSITIVE_INFINITY);
	}
	public void onScannedRobot(ScannedRobotEvent e){
		if(e.getDistance()<enemyDist||e.getName()==enemyName){
			enemyName=e.getName();
			enemyDist=e.getDistance();
			
			//This part greatly increases the accuracy of the targeting, but it isn't necessary.
			if(getGunHeat()<1){
				setTurnRadarLeftRadians(getRadarTurnRemainingRadians());
			}
			
			/*
			*You could replace these next two lines with any type of targeting and bullet power you like, 
			*I just used linear targeting as an example.
			*/
			setTurnGunRightRadians(Utils.normalRelativeAngle((e.getBearingRadians()+getHeadingRadians())-getGunHeadingRadians())+
					(e.getVelocity()*Math.sin(e.getHeadingRadians()-(e.getBearingRadians()+getHeadingRadians())))/14);
			setFire(2);
		}
	}
	public void onRobotDeath(RobotDeathEvent e){
		enemyDist=Double.POSITIVE_INFINITY;
	}
}

Note: I'm almost certain that this will fit into 132 bytes. If you need to put something else in, you could change it to head-on targeting or remove the line that locks on the radar before firing. Just remember that that line is pretty important for making the gun accurate--CrazyBassoonist 18:14, 12 September 2009 (UTC)