The Double-Action Kludge

Currently two actions are queued into the body for every time step.
This hack, probably the most frequent kludge in the system, exists because
of the slow rate that visual information enters the world model.
The players get an up-to-date world model approximately every two timesteps.
They then make a decision of how to act on this information for the
next two turns, when their world information is updated.

The Intercept Kludge

The rate the server sends visual data to clients affected the player's
ability to intercept the ball. Intercept and GoalieIntercept have
been hacked to try to make interception more reliable. These perceptions
and behaviors have multiple unnecessary, inaccurate, or misleading functions.
In general, the functions should predict the position of the ball in
the future and decide who will intercept the ball first by intersecting
the trajectory of the ball with the radial distance that the players
can travel. Then the closest player should run to the ball at
the most conservative rate possible.

The Offensive Kludge

Several behaviors (CornerKick, CornerPush, Cross, GoalieIntercept,
GoalKickStall, GotoCorner, OffenseCenter), were added days (hours) before
the competition. We found that we were performing reliably against
some teams from the 1999 competition and wanted to add some more sophisticated
offensive capabilities for when we were in range to the goal.
One of these behaviors resulted in the clustering of our players at
two points near half field. These behaviors are not tested adequately.

The Sit-and-Wait Kludge

When testing our players against other teams, we found that our team
was getting very tired. We programmed our team to sit and wait
for new play. This tactic is probably not a bad idea, however,
it's implementation needs to be analyzed, modified, and tested.