Difference between revisions of "Talk:Assertive"
Jump to navigation
Jump to search
Awesomeness (talk | contribs) m (Source) |
(original code) |
||
Line 5: | Line 5: | ||
Okay. [[User:Awesomeness|Awesomeness]] 13:46, 2 May 2009 (UTC) | Okay. [[User:Awesomeness|Awesomeness]] 13:46, 2 May 2009 (UTC) | ||
+ | |||
+ | In case you can't find the decompiler, here it is: | ||
+ | <pre> | ||
+ | package robar.nano; | ||
+ | |||
+ | import robocode.*; | ||
+ | import robocode.util.Utils; | ||
+ | |||
+ | public class Assertive extends AdvancedRobot { | ||
+ | static double direction = 1D; | ||
+ | static StringBuffer history = new StringBuffer("00000000000000000000000000000"); | ||
+ | static final double APPROACHANGLE = -Math.toRadians(20D); | ||
+ | static final double NINTYDEG = Math.PI/2; | ||
+ | static final double FIREPOWER = 2.5D; | ||
+ | static final double BULLETVEL = 12.5D; | ||
+ | static final int PATTERN_DEPTH = 30; | ||
+ | |||
+ | public void run() | ||
+ | { | ||
+ | setAdjustGunForRobotTurn(true); | ||
+ | setAllColors(java.awt.Color.red); | ||
+ | setTurnRadarRight(Double.POSITIVE_INFINITY); | ||
+ | } | ||
+ | |||
+ | public void onScannedRobot(ScannedRobotEvent e) | ||
+ | { | ||
+ | setTurnRightRadians(Utils.normalRelativeAngle(e.getBearingRadians() + NINTYDEG + APPROACHANGLE * direction)); | ||
+ | if(getDistanceRemaining() == 0.0D) | ||
+ | { | ||
+ | direction = -direction; | ||
+ | setAhead(Math.random() * 144D * direction); | ||
+ | } | ||
+ | double dist = e.getDistance(); | ||
+ | double absB = e.getBearingRadians() + getHeadingRadians(); | ||
+ | int matchLenght = PATTERN_DEPTH; | ||
+ | history.insert(0, (char)(int)(Math.sin(e.getHeadingRadians() - absB) * e.getVelocity())); | ||
+ | int index; | ||
+ | while((index = history.toString().indexOf(history.substring(0, matchLenght--), 1)) < 0) ; | ||
+ | matchLenght = index - (int)(dist / BULLETVEL); | ||
+ | do | ||
+ | absB += Math.asin((double)(byte)history.charAt(index--) / dist); | ||
+ | while(index >= Math.max(0, matchLenght)); | ||
+ | setTurnGunRightRadians(Utils.normalRelativeAngle(absB - getGunHeadingRadians())); | ||
+ | setFire(FIREPOWER); | ||
+ | setTurnRadarLeft(getRadarTurnRemaining()); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | This is much like the original one yet difference from decompiled one since the decompiler can't preserve the use of static final field inside function. » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 13:54, 2 May 2009 (UTC) |
Revision as of 14:54, 2 May 2009
Where can I see the source? Awesomeness 21:13, 1 May 2009 (UTC)
Decompile it if you like. It seem that HUNRobar has confused on how to pack the source in .jar. » Nat | Talk » 05:51, 2 May 2009 (UTC)
Okay. Awesomeness 13:46, 2 May 2009 (UTC)
In case you can't find the decompiler, here it is:
package robar.nano; import robocode.*; import robocode.util.Utils; public class Assertive extends AdvancedRobot { static double direction = 1D; static StringBuffer history = new StringBuffer("00000000000000000000000000000"); static final double APPROACHANGLE = -Math.toRadians(20D); static final double NINTYDEG = Math.PI/2; static final double FIREPOWER = 2.5D; static final double BULLETVEL = 12.5D; static final int PATTERN_DEPTH = 30; public void run() { setAdjustGunForRobotTurn(true); setAllColors(java.awt.Color.red); setTurnRadarRight(Double.POSITIVE_INFINITY); } public void onScannedRobot(ScannedRobotEvent e) { setTurnRightRadians(Utils.normalRelativeAngle(e.getBearingRadians() + NINTYDEG + APPROACHANGLE * direction)); if(getDistanceRemaining() == 0.0D) { direction = -direction; setAhead(Math.random() * 144D * direction); } double dist = e.getDistance(); double absB = e.getBearingRadians() + getHeadingRadians(); int matchLenght = PATTERN_DEPTH; history.insert(0, (char)(int)(Math.sin(e.getHeadingRadians() - absB) * e.getVelocity())); int index; while((index = history.toString().indexOf(history.substring(0, matchLenght--), 1)) < 0) ; matchLenght = index - (int)(dist / BULLETVEL); do absB += Math.asin((double)(byte)history.charAt(index--) / dist); while(index >= Math.max(0, matchLenght)); setTurnGunRightRadians(Utils.normalRelativeAngle(absB - getGunHeadingRadians())); setFire(FIREPOWER); setTurnRadarLeft(getRadarTurnRemaining()); } }
This is much like the original one yet difference from decompiled one since the decompiler can't preserve the use of static final field inside function. » Nat | Talk » 13:54, 2 May 2009 (UTC)