All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.robocode.tankroyale.botapi.Constants Maven / Gradle / Ivy

There is a newer version: 0.26.1
Show newest version
package dev.robocode.tankroyale.botapi;

/**
 * Constants.
 */
@SuppressWarnings("unused")
public final class Constants {

    // Hide constructor to prevent instantiation
    private Constants() {
    }

    /**
     * The radius of the bounding circle of the bot, which is a constant of 18 units.
     *
     * 

The bounding circle of a bot is a circle going from the center of the bot with a radius so * that the circle covers most of the bot. The bounding circle is used for determining when a bot * is hit by a bullet. * *

A bot gets hit by a bullet when the bullet gets inside the bounding circle, i.e. the * distance between the bullet and the center of the bounding circle is less than the radius of * the bounding circle. */ public static final int BOUNDING_CIRCLE_RADIUS = 18; /** * The radius of the radar's scan beam, which is a constant of 1200 units. * *

The radar is used for scanning the battlefield for opponent bots. The shape of the scan beam * of the radar is a circle arc ("pizza slice") starting from the center of the bot. Opponent bots * that get inside the scan arc will be detected by the radar. * *

The radius of the arc is a constant of {@value} units. This means that that the radar will * not be able to detect bots that are more than {@value} units away from the bot. * *

The radar needs to be turned (left or right) to scan opponent bots. So make sure the radar * is always turned. The more the radar is turned, the larger the area of the scan arc becomes, * and the bigger the chance is that the radar detects an opponent. If the radar is not turning, * the scan arc becomes a thin line, unable to scan and detect anything. */ public static final int SCAN_RADIUS = 1200; /** * The maximum possible driving turn rate, which is max. 10 degrees per turn. * *

This is the max. possible turn rate of the bot. Note that the speed of the bot has a direct * impact on the turn rate. The faster the speed the less turn rate. * *

The formula for the max. possible turn rate at a given speed is: MaxTurnRate - 0.75 x * abs(speed). Hence, the turn rate is at max. 10 degrees/turn when the speed is zero, and down to * only 4 degrees per turn when the bot is at max speed (which is 8 units per turn). */ public static final int MAX_TURN_RATE = 10; /** * The maximum gun turn rate, which is a constant of 20 degrees per turn. */ public static final int MAX_GUN_TURN_RATE = 20; /** * The maximum radar turn rate, which is a constant of 45 degrees per turn. */ public static final int MAX_RADAR_TURN_RATE = 45; /** * The maximum absolute speed, which is 8 units per turn. */ public static final int MAX_SPEED = 8; /** * The minimum firepower, which is 0.1. The gun will not fire with a power that is less than the * minimum firepower, which is 0.1. */ public static final double MIN_FIREPOWER = 0.1; /** * The maximum firepower, which is 3. The gun will fire up to this power, even if the firepower is * set to a higher value. */ public static final double MAX_FIREPOWER = 3; /** * The minimum bullet speed is 11 units per turn. * *

The minimum bullet speed is the slowest possible speed that a bullet can travel and is * defined by the maximum firepower: 20 - 3 x max. firepower, i.e. 20 - 3 x 3 = 11. The more * power, the slower the bullet speed will be. */ public static final double MIN_BULLET_SPEED = 20 - 3 * MAX_FIREPOWER; /** * The maximum bullet speed is 19.7 units per turn. * *

The maximum bullet speed is the fastest possible speed that a bullet can travel and is * defined by the minimum firepower. Max. bullet speed = 20 - 3 x min. firepower, i.e. 20 - 3 x * 0.1 = 19.7. The lesser power, the faster the bullet speed will be. */ public static final double MAX_BULLET_SPEED = 20 - 3 * MIN_FIREPOWER; /** * Acceleration is the increase in speed per turn, which adds 1 unit to the speed per turn when * the bot is increasing its speed moving forward. */ public static final int ACCELERATION = 1; /** * Deceleration is the decrease in speed per turn, which subtracts 2 units to the speed per turn * when the bot is decreasing its speed moving backward. This means that a bot is faster at * braking than accelerating forward. */ public static final int DECELERATION = -2; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy