Difference between revisions of "Talk:Assertive"
Jump to navigation
Jump to search
RednaxelaBot (talk | contribs) m (Using <syntaxhighlight>.) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
[[User:Awesomeness|Awesomeness]] 21:13, 1 May 2009 (UTC) | [[User:Awesomeness|Awesomeness]] 21:13, 1 May 2009 (UTC) | ||
− | Decompile it if you like. It seem that [[User:Robar|HUNRobar]] has confused to pack | + | Decompile it if you like. It seem that [[User:Robar|HUNRobar]] has confused on how to pack the source in .jar. » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 05:51, 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: | ||
+ | <syntaxhighlight> | ||
+ | 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()); | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | 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) |
Latest revision as of 09:33, 1 July 2010
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)