User talk:Realmoonstruck

From Robowiki
Jump to navigation Jump to search

Competitive JuniorRobot

I have been trying to make competitive Junior Robots. This the best 1 vs 1 bot I could make till now...

package ne0n; import robocode.*; public class JuniorLinear extends JuniorRobot { int moveAmount; public void run() { setColors(black, white, red, orange, purple); moveAmount = Math.max(fieldWidth, fieldHeight); turnTo(0); while (true) { bearGunTo(90); ahead(moveAmount); } } public void onHitWall() { bearGunTo(90); turnRight(90); } public void onHitByBullet() { turnGunTo(hitByBulletAngle); } public void onHitRobot() { if (scannedBearing > -90 && scannedBearing < 90) back(100); else ahead(100); } public void onScannedRobot() { double firepower = 3d-2d*((double)scannedDistance/(double)moveAmount); double bulletVelocity = 20-3*firepower; double offset = Math.toDegrees(Math.asin(scannedVelocity*Math.sin(Math.toRadians(scannedHeading-scannedAngle))/bulletVelocity)); turnGunTo((int)(scannedAngle + offset)); fire(firepower); } }

As the name suggests this uses simple trigonometric linear targeting. This has been able to beat all the Sample bots on 1 vs 1. But in melee Walls and SpinBot are beating me each time. I tried to implement some better movement and targeting strategies but couldn't get anything to work till now. Any help will be appreciated... cant figure out how to get