赞
踩
Robocode Processing Loop |
The order that Robocode runs is as follows:
|
Time (t) |
Robocode time is measured in "ticks", which are equivalent to frames displayed on the screen. Each robot gets one turn per tick. 1 tick = 1 turn = 1 frame.
|
Distance Measurement |
Robocode's units are basically measured in pixels, with two exceptions. First, all distances are measured with double precision, so you can actually move a fraction of a pixel. Second, Robocode automatically scales down battles to fit on the screen. In this case, the unit of distance is actually smaller than a pixel.
|
Acceleration (a) |
Robots accelerate at the rate of 1 pixel/tick. Robots decelerate at the rate of 2 pixels/tick. Robocode determines acceleration for you, based on the distance you are trying to move. |
Velocity Equation(v) |
v = at. Velocity can never exceed 8. Note that technically, velocity is a vector, but in Robocode we simply assume the direction of the vector to be the robot's heading. |
Distance Equation (d) |
d = vt. |
Max rate of rotation of robot |
(10 - .75 * abs(velocity)) degrees / tick. The faster you're moving, the slower you turn. |
Max rate of rotation of gun |
20 degrees / tick. This is added to the current rate of rotation of the robot. |
Max rate of rotation of radar |
45 degrees / tick. This is added to the current rate of rotation of the gun. |
Damage |
4 * firepower. If firepower > 1, it does an additional 2 * (power - 1). |
Velocity |
20 - 3 * firepower; |
GunHeat generated |
1 + firepower / 5. You cannot fire if gunHeat > 0. All guns are hot at the start of each round. |
Power returned on hit |
3 * firepower. |
With Another Robot |
Each robot takes .6 damage. If a robot is moving away from the collision, it will not be stopped. |
With a Wall |
AdvancedRobots take Math.abs(velocity) * .5 - 1; (Never < 0) |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。