| Class Summary | 
| ANoOpStrategy | Abstract strategy that provides default behaviors that do nothing. | 
| AUpdateStrategy | Abstract strategy that provides random initialization of a ball. | 
| BreathingStrategy | An ANoOpStrategy-based strategy that only only overrides the updateState behavior 
 to make the ball's radius grower larger and smaller in a random sinusoidal manner. | 
| Change1Strategy | A strategy that demonstrates self-modifying behavior by replacing itself with another strategy after a certain length of time. | 
| Change2Strategy | Similar self-modifying behavior to Change1Strategy. | 
| ColorStrategy | ANoOpStrategy-based strategy that randomly sets the context's color each time its updateState() method is called. | 
| CurveStrategy | ANoOpStrategy-based strategy that continuously modifies the velocity to produce circular motion. | 
| DrunkenStrategy | AUpdateStrategy-bsed strategy that delegates to one of 4 randomly choosen strategies whenever it's updateState is called. | 
| ExplodeStrategy | An ANoOpStrategy-based strategy that, upon colliding with another ball, may replace its context
  with a number of smaller balls with the same strategy, unless the context's radius is below 
 a minumum length, upon which the context is simply killed. | 
| HeavyStrategy | An ANoOpStrategy-based strategy who initializes its context to have an infinitely large (positive) mass. | 
| KillStrategy | An ANoOpStrategy-based strategy that kills any ball that it collides with. | 
| LightUpStrategy | An ANoOpStrategy-based strategy that switches its color to a preset "lit up" color for a while after a collision. | 
| MoveStrategy | An ANoOpStrategy-based strategy that modifies the velocity of the context ball through user key presses. | 
| MultiStrategy | An ANoOpStrategy-based strategy that is the composition of two IUpdateStrategies. | 
| RockStrategy | An ANoOpStrategy-based strategy that initializes its context's velocity to zero. | 
| ScoreStrategy | An ANoOpStrategy-based strategy that increments an associated player's score at every collision 
 and resets that player's score if it is killed. | 
| StraightStrategy | An AUpdateStrategy-based strategy whose updateState is  a no-op hence the randomly initialized ball will travel in a straight line (unless it collides or bounces). | 
| SwitcherStrategy | A Decorator design pattern strategy that decorates an IUpdateStrategy, enabling the 
 strategy (the decoree) to be switched at run-time. | 
| WanderStrategy | An ANoOpStrategy-based strategy that randomly modifies the velocity whenever the state of the context is updated. |