# Maximum Escape Angle

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

When firing, the largest angle offset from zero (i.e., Head-On Targeting) that could possibly hit an enemy bot, given the Game Physics of Robocode.

## Calculation

Let's assume a triangle with sides `a`, `b`, and `c`; and angles (vertices) `A`, `B`, and `C`; where `A` is the angle opposed to `a`, `B` to b, and `C` to `c`. The Law of sines says that:

`a/sin(A) = b/sin(B) = c/sin(C)`
```                  A
/\
/  \
b  /    \  c
/      \
/________\
C     a      B
```

Now let's say that your bot is in the vertex `A` and the enemy bot is in the vertex `C`. We will fire a bullet with angle `A` to hit the bot in vertex `B`. We know the value of `b` (it is the distance `D` from your bot to the enemy). We don't know `c`, but we know that it will be the distance traveled by the bullet. Also, we know that `a` will be the distance traveled by the enemy bot. If we put `a`, `b`, and `c` as a function of time, we have:

```b = D
c = Vb * t (Vb is the bullet speed)
a = Vr * t (Vr is the enemy bot velocity)
```

Now, using the Law of sines:

```   a/sin(A) = c/sin(C)
-> Vr*t / sin(A) = Vb*t / sin(C)
-> sin(A) = Vr/Vb * sin(C)
-> A = asin(Vr/Vb * sin(C))
```

We don't know the value of`C`, but we can take the worst scenario where ```C = PI/2</code (sin(C) = 1) to get a Maximum Escape Angle of A = asin(Vr/Vb * 1 ) = asin (Vr/Vb). ```

```With a maximum Robot velocity of 8.0, a theoretical Maximum Escape Angle would be asin(8.0/Vb). Note that the actual maximum depends on the enemy's current heading, speed, and Wall Distance. ```

`See Also``Precise Maximum Escape Angle - Some bots use a more sophisticated calculation for Maximum Escape Angle, using Precise Prediction.`