本文整理汇总了Java中robocode.util.Utils类的典型用法代码示例。如果您正苦于以下问题:Java Utils类的具体用法?Java Utils怎么用?Java Utils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Utils类属于robocode.util包,在下文中一共展示了Utils类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
/**
* onScannedRobot: What to do when you see another robot
*/
public void onScannedRobot(ScannedRobotEvent e) {
if (getGunHeat()>0){
randMove();
}
double absBearing = getHeadingRadians() + e.getBearingRadians();
double radarTurn = absBearing - getRadarHeadingRadians();
setTurnRadarRightRadians(2 * Utils.normalRelativeAngle(radarTurn));
setTurnGunRight(getHeading() - getGunHeading() + e.getBearing());
double radarLowerBound = getRadarHeadingRadians() - (Math.PI / 6);
double radarUpperBound = getRadarHeadingRadians() + (Math.PI / 6);
if (getGunHeadingRadians() < radarUpperBound && getGunHeadingRadians() > radarLowerBound) {
setFire(Math.min(400 / e.getDistance(), 3));
}
}
开发者ID:pseminatore,项目名称:asda,代码行数:20,代码来源:AlphaBotCorndog.java
示例2: getAngularVelocity
import robocode.util.Utils; //导入依赖的package包/类
public static double getAngularVelocity(double headingBefore,
double headingAfter, long timeBefore, long timeAfter) {
if (timeBefore >= timeAfter) {
return 0;
}
if (Utils.isNear(headingBefore, headingAfter)) {
return 0;
}
double ret = getBearing(headingBefore, headingAfter);
while (ret > Math.PI) {
ret -= Math.PI * 2;
}
return ret / (timeAfter - timeBefore);
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:18,代码来源:MathUtils.java
示例3: act
import robocode.util.Utils; //导入依赖的package包/类
@Override
public void act() {
ArrayList<RadialForce> forces = getRobotForces();
Point2D.Double vector = getTotalForceVector(forces);
double turnAngle = getTurnAngle(vector);
if (Math.abs(getTurnAngle(vector)) > (Math.PI / 2)) {// go backwards
robot.setAhead(-1000);
robot.setTurnRightRadians(-Utils.normalRelativeAngle(turnAngle));
} else {//go forwards
robot.setAhead(1000);
robot.setTurnRightRadians(Utils.normalRelativeAngle(turnAngle));
}
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:17,代码来源:AntigravityWheel.java
示例4: handleScannedRobotEvent
import robocode.util.Utils; //导入依赖的package包/类
@Override
public void handleScannedRobotEvent(final ScannedRobotEvent e)
{
double gunTurn =
// Absolute bearing to target
(this.getRobot().getHeadingRadians() + e.getBearingRadians())
// Subtract current gun heading to get turn required
- this.getRobot().getGunHeadingRadians();
this.getRobot().setTurnGunRightRadians(
Utils.normalRelativeAngle(gunTurn));
//getRobot().setFire(Rules.MAX_BULLET_POWER * 75 / e.getDistance());
this.getRobot().setFire(Rules.MAX_BULLET_POWER);
}
开发者ID:philippsander,项目名称:robocode_robot,代码行数:18,代码来源:SimpleDirectionGun.java
示例5: handleScannedRobotEvent
import robocode.util.Utils; //导入依赖的package包/类
public ScannedRobotEvent handleScannedRobotEvent(final ScannedRobotEvent e)
{
// Absolute angle towards target
double angleToEnemy = getRobot().getHeadingRadians() + e.getBearingRadians();
// Subtract current radar heading to get the turn required to face the enemy, be sure it is normalized
double radarTurn = Utils.normalRelativeAngle( angleToEnemy - getRobot().getRadarHeadingRadians() );
// Distance we want to scan from middle of enemy to either side
// The 36.0 is how many units from the center of the enemy robot it scans.
double extraTurn = Math.min( Math.atan( 36.0 / e.getDistance() ), Rules.RADAR_TURN_RATE_RADIANS );
// Adjust the radar turn so it goes that much further in the direction it is going to turn
// Basically if we were going to turn it left, turn it even more left, if right, turn more right.
// This allows us to overshoot our enemy so that we get a good sweep that will not slip.
radarTurn += (radarTurn < 0 ? -extraTurn : extraTurn);
//Turn the radar
getRobot().setTurnRadarRightRadians(radarTurn);
return e;
}
开发者ID:philippsander,项目名称:robocode_robot,代码行数:23,代码来源:WidthLock.java
示例6: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
//input = new double[numInputs];
double radarTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getRadarHeadingRadians();
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn));
out.println("Starting a scan");
input[2] = scaleDown(e.getBearingRadians(),-Math.PI,Math.PI);
//input[3] = scaleDown(e.getDistance(),0,Rules.RADAR_SCAN_RADIUS);
//input[4] = scaleDown(e.getVelocity(),0,Rules.MAX_VELOCITY);
//input[5] = scaleDown(e.getHeadingRadians(),0,2*Math.PI);
//run();
//scan();
// ...
// out.println("Finished Scan");
}
开发者ID:atyndall,项目名称:cits4404,代码行数:23,代码来源:NeuroTargetingBot.java
示例7: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
//input = new double[numInputs];
double radarTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getRadarHeadingRadians();
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn));
out.println("Starting a scan");
input[6] = scaleDown(e.getBearing(),0,360);
input[7] = scaleDown(e.getDistance(),0,Rules.RADAR_SCAN_RADIUS);
input[8] = scaleDown(e.getEnergy(),0,100);
input[9] = scaleDown(e.getHeading(),0,360);
//run();
//scan();
// ...
// out.println("Finished Scan");
}
开发者ID:atyndall,项目名称:cits4404,代码行数:23,代码来源:NeuroBot.java
示例8: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
//input = new double[numInputs];
double radarTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getRadarHeadingRadians();
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn));
out.println("Starting a scan");
input[0] = scaleDown(e.getDistance(),0,Rules.RADAR_SCAN_RADIUS);
input[1] = scaleDown(e.getEnergy(),0,Rules.MAX_VELOCITY);
setTurnRight((e.getBearing() + 90)*direction);
//run();
//scan();
// ...
// out.println("Finished Scan");
}
开发者ID:atyndall,项目名称:cits4404,代码行数:22,代码来源:NeuroStrafingBot.java
示例9: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
double radarTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getRadarHeadingRadians();
double gunTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getGunHeadingRadians() + gunTurnVariance;
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn));
setTurnGunRightRadians(Utils.normalRelativeAngle(gunTurn));
//do other things you want to do per scan
//you can do them before or after the above scanning code
}
开发者ID:atyndall,项目名称:cits4404,代码行数:20,代码来源:GABot.java
示例10: run
import robocode.util.Utils; //导入依赖的package包/类
public void run() {
setAdjustRadarForGunTurn(true);
setAdjustGunForRobotTurn(true);
_bfWidth = getBattleFieldWidth();
_bfHeight = getBattleFieldHeight();
while (true) {
turnRadarRightRadians(Double.POSITIVE_INFINITY);
ahead(1000);
double nextAngle = wallSmoothing(getX(), getY(), 0, 1, 1);
turnRight(Utils.normalAbsoluteAngle(nextAngle));
}
}
开发者ID:chips11589,项目名称:robochips,代码行数:16,代码来源:AlphaLead.java
示例11: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
double targetAbsoluteBearing = getHeadingRadians() + e.getBearingRadians();
// Absolute bearing to target subtracts current radar heading to get turn
// required
double radarTurn = targetAbsoluteBearing - getRadarHeadingRadians();
setTurnGunRightRadians(Utils.normalRelativeAngle(targetAbsoluteBearing - getGunHeadingRadians()));
setFire(2);
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn) * 2);
}
开发者ID:chips11589,项目名称:robochips,代码行数:13,代码来源:AlphaLead.java
示例12: checkHit
import robocode.util.Utils; //导入依赖的package包/类
public boolean checkHit(double enemyX, double enemyY, long currentTime){
if (Point2D.distance(startX, startY, enemyX, enemyY) <= (currentTime - fireTime) * getBulletSpeed()){
double desiredDirection = Math.atan2(enemyX - startX, enemyY - startY);
double angleOffset = Utils.normalRelativeAngle(desiredDirection - startBearing);
double guessFactor = Math.max(-1, Math.min(1, angleOffset / maxEscapeAngle())) * direction;
int index = (int) Math.round((returnSegment.length - 1) / 2 * (guessFactor + 1));
returnSegment[index]++;
return true;
}
return false;
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:12,代码来源:WaveBullet.java
示例13: fireAt
import robocode.util.Utils; //导入依赖的package包/类
private void fireAt(ScannedRobotEvent event) {
if (event.getName().equals(Observer.TARGET)) {
if (NearestNeighborSelector.disabledBotExists()) {
this.bulletPower = Rules.MIN_BULLET_POWER; // set bullet power to min, and snipe disabled robot
} else if (event.getDistance() < 200) {
this.bulletPower = Rules.MAX_BULLET_POWER; // set bullet power to max when target is close
} else if (event.getDistance() < this.range) {
this.bulletPower = 2;
} else {
//this.bulletPower = Rules.MIN_BULLET_POWER; // set bullet power to min when target is far
return;
}
// paint target with a red circle
Point2D.Double location = MathUtils.getLocation(robot, event.getBearingRadians(), event.getDistance());
Util.paintCircle(robot, location.getX(), location.getY(), 30, Color.red);
distanceToTarget = event.getDistance();
double absoluteBearing = robot.getHeadingRadians()
+ event.getBearingRadians();
double BulletFudgeFactor = this.bulletPower * 3;
robot.setTurnGunRightRadians(
Utils.normalRelativeAngle(
absoluteBearing - robot.getGunHeadingRadians() + (event.getVelocity() * Math.sin(event.getHeadingRadians() - absoluteBearing) / BulletFudgeFactor)
)
);
System.out.println("Firing with power: " + this.bulletPower);
robot.setFire(this.bulletPower);
}
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:38,代码来源:LinearGun.java
示例14: fireAt
import robocode.util.Utils; //导入依赖的package包/类
private void fireAt(ScannedRobotEvent event) {
if (event.getName().equals(Observer.TARGET)) {
// paint target with a red circle
Point2D.Double location = MathUtils.getLocation(robot, event.getBearingRadians(), event.getDistance());
Util.paintCircle(robot, location.getX(), location.getY(), 30, Color.red);
distanceToTarget = event.getDistance();
double absoluteBearing = robot.getHeadingRadians()
+ event.getBearingRadians();
double BulletFudgeFactor = this.bulletPower * 3;
robot.setTurnGunRightRadians(
Utils.normalRelativeAngle(
absoluteBearing - robot.getGunHeadingRadians() + (event.getVelocity() * Math.sin(event.getHeadingRadians() - absoluteBearing) / BulletFudgeFactor)
)
);
if (NearestNeighborSelector.disabledBotExists()) {
this.bulletPower = Rules.MIN_BULLET_POWER; // set bullet power to min, and snipe disabled robot
} else if (event.getDistance() < this.range) {
this.bulletPower = Rules.MAX_BULLET_POWER; // set bullet power to max when target is close
} else {
//this.bulletPower = Rules.MIN_BULLET_POWER; // set bullet power to min when target is far
return;
}
robot.setFire(this.bulletPower);
}
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:34,代码来源:CircularGun.java
示例15: getBearing
import robocode.util.Utils; //导入依赖的package包/类
public static double getBearing(double from, double to) {
double ret = Utils.normalAbsoluteAngle(to - from);
while (ret > Math.PI) {
ret -= Math.PI * 2;
}
return ret;
}
开发者ID:BenDoan,项目名称:OgorSheeptipper,代码行数:8,代码来源:MathUtils.java
示例16: handleScannedRobotEvent
import robocode.util.Utils; //导入依赖的package包/类
@Override
public ScannedRobotEvent handleScannedRobotEvent(final ScannedRobotEvent e) {
double radarTurn =
// Absolute bearing to target
(getRobot().getHeadingRadians() + e.getBearingRadians())
// Subtract current radar heading to get turn required
- getRobot().getRadarHeadingRadians();
getRobot().setTurnRadarRightRadians(
Utils.normalRelativeAngle(radarTurn));
return e;
}
开发者ID:philippsander,项目名称:robocode_robot,代码行数:14,代码来源:TurnMultiplierLock.java
示例17: move
import robocode.util.Utils; //导入依赖的package包/类
@Override
public void move() {
double bearing = Utils.normalRelativeAngle(getRobot()
.getRadarHeadingRadians() - getRobot().getHeadingRadians());
getRobot().setTurnRightRadians(bearing);
getRobot().setAhead(40000);
getRobot().waitFor(new TurnCompleteCondition(getRobot()));
}
开发者ID:philippsander,项目名称:robocode_robot,代码行数:12,代码来源:RamTracks.java
示例18: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
/**
* Tracks, records energy levels of, and fires upon enemy robots.
*
* @param evt The event that is generated when this robot scans another robot.
*/
@Override
public void onScannedRobot(ScannedRobotEvent evt) {
if (!nearWall) {
// Square off against enemy
// From http://mark.random-article.com/robocode/basic_movement.html
this.setTurnRight(evt.getBearing() + 90);
// If we havn't scanned this robot before, add it to known robots.
if (!this.scannedRobots.containsKey(evt.getName())) {
this.scannedRobots.put(evt.getName(), new ArrayList<Double>());
}
// Store the robots energy
this.scannedRobots.get(evt.getName()).add(evt.getEnergy());
// Determine relative angles needed to turn radar and gun, and then turn them.
double radarTurnAngle =
RobotUtilities.getTargetTurnAngle(super.getHeading(), this.getRadarHeading(),
evt.getBearing());
double gunTurnAngle =
RobotUtilities.getTargetTurnAngle(super.getHeading(), this.getGunHeading(),
evt.getBearing());
this.setTurnRadarRight(Utils.normalRelativeAngleDegrees(radarTurnAngle));
this.setTurnGunRight(Utils.normalRelativeAngleDegrees(gunTurnAngle));
// Make sure our gun is actually pointing at the robot before firing
// Also ensure that the gun is cool before firing
// Inspired from http://mark.random-article.com/robocode/basic_targeting.html
if (Math.abs(this.getGunTurnRemaining()) < 5 && this.getGunHeat() == 0) {
this.setFire(utils.getProportionalFirePower(evt.getDistance()));
}
this.execute();
}
}
开发者ID:anthonyjchriste,项目名称:robocode-ajc-wrathofpele,代码行数:41,代码来源:WrathOfPele.java
示例19: onScannedRobot
import robocode.util.Utils; //导入依赖的package包/类
public void onScannedRobot(ScannedRobotEvent e) {
double radarTurn =
// Absolute bearing to target
getHeadingRadians() + e.getBearingRadians()
// Subtract current radar heading to get turn required
- getRadarHeadingRadians();
setTurnRadarRightRadians(Utils.normalRelativeAngle(radarTurn));
//do other things you want to do per scan
//you can do them before or after the above scanning code
}
开发者ID:atyndall,项目名称:cits4404,代码行数:13,代码来源:ScanningBot.java
示例20: backoff
import robocode.util.Utils; //导入依赖的package包/类
/**
* We do a little set of "safety" moves if something bad happens, to prevent complete system failure
*/
private void backoff() {
int half = (int)Math.min(getBattleFieldHeight(), getBattleFieldWidth()) / 2;
setStop();
setBack(Utils.getRandom().nextInt(half) + 36);
setTurnRight(Utils.getRandom().nextInt(360));
setResume();
setAhead(30);
}
开发者ID:atyndall,项目名称:cits4404,代码行数:12,代码来源:GABot.java
注:本文中的robocode.util.Utils类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论