Difference between revisions of "User:PiRocks"
Jump to navigation
Jump to search
Line 10: | Line 10: | ||
1.6.1.4 Glitches | 1.6.1.4 Glitches | ||
:So far, the only major glitch I have found is that you can cheat the SecurityManager by achieving a "SafeContext". One easy way to do this is using the following Class... | :So far, the only major glitch I have found is that you can cheat the SecurityManager by achieving a "SafeContext". One easy way to do this is using the following Class... | ||
+ | <syntaxhighlight> | ||
+ | double bulletD = 0; | ||
+ | int round = scan.round; | ||
+ | double x = 0, y = 0; | ||
+ | while (M.sqr(bulletD) < Point2D.distanceSq(x, y, last.distance, 0)) { | ||
+ | bulletD += bulletV; | ||
+ | x += scan.relativePoint.getX(); | ||
+ | y += scan.relativePoint.getY(); | ||
+ | scan = scan.next; | ||
+ | if (scan == null || scan.round != round) | ||
+ | return null; | ||
+ | } | ||
+ | Point2D newEnemyLocation = new Point2D.Double(x, y); | ||
+ | newEnemyLocation = rotate(newEnemyLocation, last.heading); | ||
+ | newEnemyLocation = new Point2D.Double(newEnemyLocation.getX() | ||
+ | + r._enemyLocation.getX(), newEnemyLocation.getY() | ||
+ | + r._enemyLocation.getY()); | ||
+ | if (!_fieldRect.contains(newEnemyLocation)) { | ||
+ | return null; | ||
+ | } | ||
+ | </syntaxhighlight> |
Revision as of 02:30, 4 July 2010
PiRocks
I am an experienced Java programmer. As you can guess, I love pi ( and also pie). In RoboRumble, I use the package name "hacker".
I am using "work-around" methods for my robots to make them better as well as find security glitches.
Hacker Robots
Right now my only robot is Destroyer. It is a 1-v-1 and Melee robot. Unfortunately, it was built and tested using Robocode v1.7.2.1 Beta, which has a different SecurityManager. Because of this my work-a-round method to create more threads doesn't work, resulting in auto disqualification. I am trying to fix this, but my next update will probably take a while.
Glitches
1.6.1.4 Glitches
- So far, the only major glitch I have found is that you can cheat the SecurityManager by achieving a "SafeContext". One easy way to do this is using the following Class...
double bulletD = 0;
int round = scan.round;
double x = 0, y = 0;
while (M.sqr(bulletD) < Point2D.distanceSq(x, y, last.distance, 0)) {
bulletD += bulletV;
x += scan.relativePoint.getX();
y += scan.relativePoint.getY();
scan = scan.next;
if (scan == null || scan.round != round)
return null;
}
Point2D newEnemyLocation = new Point2D.Double(x, y);
newEnemyLocation = rotate(newEnemyLocation, last.heading);
newEnemyLocation = new Point2D.Double(newEnemyLocation.getX()
+ r._enemyLocation.getX(), newEnemyLocation.getY()
+ r._enemyLocation.getY());
if (!_fieldRect.contains(newEnemyLocation)) {
return null;
}