Lesson goal: Missile Command: Intercept Kinematics & Blast Geometry

Previous: Billiards: Elastic Collisions, 90° Rule & Ghost Ball | Home | Next: Artillery: Parabolic Ballistics & Wind Drift

In 1980, Atari released Missile Command, designed by legendary engineer Dave Theurer. Players defended six cities and three missile batteries against relentless waves of descending ICBMs (Intercontinental Ballistic Missiles) and splitting MIRVs.

Behind the Cold War arcade action is fundamental vector mathematics: linear kinematic intercepts, circle area expansion equations, and spatial distance optimization!

Radar Air Defense Sector ($600 \times 380$)

The airspace is mapped onto a 2D coordinate grid:
  • Sky Region: $x = 0$ to $600$, with altitude $y = 0$ (high atmosphere) down to ground level $y = 350$.
  • 3 Missile Silos: Silo 1 (Left / Alpha) at $(60, 350)$, Silo 2 (Center / Delta) at $(300, 350)$, and Silo 3 (Right / Omega) at $(540, 350)$.
  • 6 Cities: Grouped in two sectors: Cities 1–3 at $x = 120, 180, 240$ and Cities 4–6 at $x = 360, 420, 480$ along the ground ($y = 350$).
  • Interceptor Flight Speed: All defensive missiles travel in straight vectors at a constant speed of $V_d = 260\text{ px/s}$.


The Kinematic Intercept Formula

An incoming missile starts at $\vec{P}_0 = (x_0, 0)$ and falls with constant velocity $\vec{v} = (v_x, v_y)$: $$\vec{P}(t) = \vec{P}_0 + \vec{v} \cdot t$$ When you fire from silo $\vec{S} = (S_x, S_y)$ targeting detonation coordinate $\vec{D} = (D_x, D_y)$, the interceptor's flight time is simply: $$T_{\text{flight}} = \frac{\|\vec{D} - \vec{S}\|}{V_d} = \frac{\sqrt{(D_x - S_x)^2 + (D_y - S_y)^2}}{260}$$ To intercept the threat, you must lead your target so the incoming missile arrives at $\vec{D}$ at time $T_{\text{flight}}$!

Expanding Fireball Geometry

Upon reaching $\vec{D}$, your interceptor detonates into an expanding circular fireball: $$(x - D_x)^2 + (y - D_y)^2 \le r(t)^2$$ The blast expands rapidly to a maximum radius of $R_{\text{max}} = 38\text{ px}$, covering an area of: $$A_{\text{blast}} = \pi R_{\text{max}}^2 \approx 4,536\text{ px}^2$$ Any incoming warhead entering this circular area is instantly incinerated!

Controlling Air Defense with Code

Program your anti-ballistic missile defense using deterministic commands:
  • missile_game(n): Initializes deterministic Sector Stage #$n$ (1: Lead Calculation, 2: MIRV Cluster, 3: Distance Optimization, 4: Multi-Wave).
  • fire(silo_id, x, y): Launches an interceptor from Silo 1, 2, or 3 toward target $(x, y)$.
  • fire(x, y): Automatically launches from the closest operational silo to $(x, y)$!
  • wait(seconds): Simulates time while missiles fly and fireballs expand.
missile_game(1)
fire(1, 170, 200)

wait(4.0)
Move the mouse over a dotted box for more information.

  • Live Air Defense HUD: Displays Score ($+25$ per warhead destroyed), surviving Cities, Threats Neutralized, and remaining Ammo.
  • Trajectory Guides: Dotted red lines project the incoming warhead's vector path down to its ground target.
  • Interactive Targeting: You can also defend manually by clicking anywhere in the sky to launch interceptors from the nearest silo!

Now you try. Can you calculate the intercept lead in Stage #1, or try missile_game(2) for a MIRV split?

Type your code here:


See your results here: