User talk:Realmoonstruck

From Robowiki
Revision as of 15:26, 14 July 2010 by Nat (talk | contribs) (→‎Competitive JuniorRobot: edit conflict)
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);

	}

}

Tis moves in the same was as the Sample Walls. 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... —Preceding unsigned comment added by Realmoonstruck (talkcontribs)

I am not entirely sure on how JuniorRobots work, but if I might suggest you stick to just radians or just degrees. Looking at your code it looks to be something like a simple linear targeting implementation. Radar handling may help somewhat. — Chase-san 14:21, 14 July 2010 (UTC)
Junior doesn't support radians, but Java Trig use radians. So when use Junior Robot we must convert back and forth. --Nat Pavasant 14:26, 14 July 2010 (UTC)

In sample bots melee it is better to fire head-on since many of sample robots are moving back-and-forth with make it impossible to hit with linear or circular. So in melee Walls and SpinBot will beat you. Maybe you may want to see oldwiki:Girl Robot. It should be quite easy to port over to Junior Robot, with melee features stripped... :( --Nat Pavasant 14:26, 14 July 2010 (UTC)

You cannot post new threads to this discussion page because it has been protected from new threads, or you do not currently have permission to edit.

There are no threads on this page yet.