C++Robots combat takes place in walled a 100m x 100m arena.

Ranges and locations are expressed in 1/100ths of meters.

Speeds are expressed in 1/100ths of meters/second.

All angles are expressed in degrees. 0 is due east, 90 due north, 180 due west and 270 due south. Angles outside [0..359] are adjusted to be within the correct range.

The builtin scanner has a maximum arc of +/- 10 degrees. If you attempt to scan a wider arc than that, only +/- 10 degrees of arc are scanned.

Maximum forward robot velocity is +1 meter/second.
Maximum reverse robot velocity is -.75 meters/second.

Maximum robot acceleration is +/- .2 meters/second/second.

Maximum turn speed is .5 meters/second. If you attempt to turn and your current speed is greater than .5 meters/second, you will slow down to .5 meters/second, make the turn and then accelerate to your desired speed.

Maximum direction change is 15 degrees/second.

Cannon shots travel at ~10 meters/second with a blast radius of 4 meters. 
Maximum damage (8 points) is done within .5 meters.
Medium damage (4 points) within 1 meter.
Light damage (2 points) within 2 meters.
Minimum damage (1 point) within 4 meters.

If a robot attempts to leave the arena (hits a wall), it will take speed/25 points of damage (rounded up).

If two robots collide, they will each take (total relative speed/25) points of damage (rounded up).

If a robot has a collision (wall or robot), its motor will disengage, and its speed will become 0.